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