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

Reply via email to