Changeset: 5765b45a182c for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5765b45a182c Modified Files: gdk/gdk_select.c Branch: default Log Message:
scan-select: use predication for more rebustness against branch-mispredictions
diffs (43 lines):
diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -181,23 +181,19 @@ do {
\
while (p < q) { \
CAND; \
READ; \
- if (TEST) { \
- buninsfix(bn, T, dst, cnt, oid, o, \
- (BUN) ((dbl) cnt / (dbl) (p-r)\
- * (dbl) (q-p) * 1.1), \
- maximum, BUN_NONE); \
- cnt++; \
- } \
+ buninsfix(bn, T, dst, cnt, oid, o, \
+ (BUN) ((dbl) cnt / (dbl) (p-r) \
+ * (dbl) (q-p) * 1.1), \
+ maximum, BUN_NONE); \
+ cnt += (TEST); \
p++; \
} \
} else { \
while (p < q) { \
CAND; \
READ; \
- if (TEST) { \
- dst[cnt] = o; \
- cnt++; \
- } \
+ dst[cnt] = o; \
+ cnt += (TEST); \
p++; \
} \
} \
@@ -815,7 +811,7 @@ BATsubselect(BAT *b, BAT *s, const void
}
if (smpl_cnt > 0 && slct_cnt > 0) {
/* linear extrapolation plus 10% margin */
- estimate = (BUN) ((dbl) slct_cnt / (dbl)
smpl_cnt
+ estimate = (BUN) ((dbl) slct_cnt / (dbl)
smpl_cnt
* (dbl) BATcount(b) * 1.1);
}
}
_______________________________________________
checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list
