Changeset: 4dc355e7febe for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=4dc355e7febe
Modified Files:
        configure.ag
        gdk/gdk_search.c
        monetdb5/modules/atoms/uuid.c
Branch: Oct2014
Log Message:

merged


diffs (104 lines):

diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -129,6 +129,7 @@ case "$CC" in
        9.*)    CC="$CC -no-gcc";;
        10.*)   CC="$CC -no-gcc";;
        11.*)   CC="$CC -no-gcc";;
+       15.*)   CC="$CC -no-gcc";;
        *)      AC_MSG_WARN([icc ($CC) $icc_ver not handled, yet]);;
        esac
        ;;
@@ -696,6 +697,7 @@ yes-*-*)
        9.*)    ;;
        10.*)   ;;
        11.*)   ;;
+       15.*)   ;;
        *)      CFLAGS="$CFLAGS -ansi";;
        esac
        dnl  Be picky; "-Werror" seems to be too rigid for autoconf...
@@ -713,11 +715,12 @@ yes-*-*)
        dnl  ... however, some things aren't solved, yet:
        dnl  (for the time being,) we need to disable some warnings (making 
them remarks doesn't seem to work with -Werror):
        X_CFLAGS="$X_CFLAGS -wd1418,1419,981,193,1357"
-       dnl ICC 11 warns about non-pointer conversion from "<type>" to
+       dnl ICC 11 & 15 warn about non-pointer conversion from "<type>" to
        dnl "<smaller>" may lose significant bits, it does however, also for
        dnl constants like short s = 1234, which is too much
        case $icc_ver in
        11.*)       X_CFLAGS="$X_CFLAGS,2259" ;;
+       15.*)       X_CFLAGS="$X_CFLAGS,2259" ;;
        esac
        case $icc_ver in
        8.[[1-9]]*)     X_CFLAGS="$X_CFLAGS,1572" ;;
@@ -1055,6 +1058,10 @@ if test "x$enable_optimize" = xyes; then
 
              dnl  We need to use -mp instead of -mp1 as otherwise nextafter() 
& nextafterf() do not work correctly for 0
              x86_64-*-*-11.*) CFLAGS="$CFLAGS -mp  -O3 -restrict -unroll       
              -axSSE4.2 ";; 
+             dnl  -mp does no longer exist with icc 15; not tested whether we 
can use -mp1, again ...
+             dnl  adding -axSSE4.2 (or even -axCORE-AVX512) results in errors 
like
+             dnl  "error: ODBCFetch has been targeted for automatic cpu 
dispatch" ...
+             x86_64-*-*-15.*) CFLAGS="$CFLAGS      -O3 -restrict -unroll 
-no-inline-max-size -no-inline-max-total-size";; 
 
              i*86-*-*-8.*)    CFLAGS="$CFLAGS -mp1 -O3 -restrict -unroll       
        -tpp6 -axKWNPB";;
              i*86-*-*-9.*)    CFLAGS="$CFLAGS -mp1 -O3 -restrict -unroll       
        -tpp6 -axKWNPB";;
diff --git a/gdk/gdk_search.c b/gdk/gdk_search.c
--- a/gdk/gdk_search.c
+++ b/gdk/gdk_search.c
@@ -123,28 +123,13 @@ HASHmask(BUN cnt)
 static void
 HASHclear(Hash *h)
 {
-       BUN i, j = h->mask, nil = HASHnil(h);
-
-       switch (h->width) {
-       case 1:
-               for (i = 0; i <= j; i++)
-                       HASHput1(h, i, nil);
-               break;
-       case 2:
-               for (i = 0; i <= j; i++)
-                       HASHput2(h, i, nil);
-               break;
-       case 4:
-               for (i = 0; i <= j; i++)
-                       HASHput4(h, i, nil);
-               break;
-#if SIZEOF_BUN == 8
-       case 8:
-               for (i = 0; i <= j; i++)
-                       HASHput8(h, i, nil);
-               break;
-#endif
-       }
+       /* since BUN2_NONE, BUN4_NONE, BUN8_NONE
+        * are all equal to -1 (~0), i.e., have all bits set,
+        * we can use a simple memset() to clear the Hash,
+        * rather than iteratively assigning individual
+        * BUNi_NONE values in a for-loop
+        */
+       memset(h->Hash, 0xFF, (h->mask + 1) * h->width);
 }
 
 Hash *
@@ -153,6 +138,8 @@ HASHnew(Heap *hp, int tpe, BUN size, BUN
        Hash *h = NULL;
        int width = HASHwidth(size);
 
+fprintf(stderr,"## HASHnew(tpe=%d,size="BUNFMT",mask="BUNFMT"): width = %d 
##\n", tpe, size, mask, width);
+
        if (HEAPalloc(hp, mask + size, width) < 0)
                return NULL;
        hp->free = (mask + size) * width;
diff --git a/monetdb5/modules/atoms/uuid.c b/monetdb5/modules/atoms/uuid.c
--- a/monetdb5/modules/atoms/uuid.c
+++ b/monetdb5/modules/atoms/uuid.c
@@ -237,8 +237,6 @@ UUIDequal(bit *retval, uuid **l, uuid **
        return MAL_SUCCEED;
 }
 
-/* taken from gdk_search.h */
-#define mix_int(X)     (((X)>>7)^((X)>>13)^((X)>>21)^(X))
 BUN
 UUIDhash(const void *v)
 {
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to