On Fri, Oct 26, 2012 at 07:27:43PM +0200, Jakub Jelinek wrote:
> This patch extends optimize_range_tests optimization, so that it
> handles also the cases where the truth && or || has been gimplifed
> as a series of GIMPLE_CONDs or mixture thereof and BIT_{AND,IOR}_EXPR
> stmts.

Some statistics from x86_64-linux and i686-linux bootstraps
(--enable-checking=yes,rtl --enable-languages=all,obj-c++,ada,go
for x86_64 and the same without ada for i686).
I've gathered how many calls to update_range_test there were, whether
it was inter-bb (opcode == ERROR_MARK) or normal range merge and how
many range tests were merged into one.  Numberes are split for
-m32 compilations and -m64 compilations during those bootstraps,
vanilla numbers are normal merges with unpatched trunk, patched
are normal merges with patched trunk and inter-bb are inter-bb
merges with patched trunk.  The patched numbers are somewhat
smaller than the vanilla numbers, because some merges are done
by inter-bb, but the sum of normal and inter-bb range test merges
is always bigger. # ranges is how many ranges were merged together,
i.e. count argument to update_range_test + 1.

                |         -m32          |       |         -m64          |
# ranges        vanilla patched inter-bb        vanilla patched inter-bb
 2              57921   57136   19123           62148   61276   18927
 3                               2965                            3359
 4                  2       2     879               2       2    1010
 5                                111                             127
 6                                242                             243
 7                                 13                              19
 8                                 23                              23
 9                                 12                               9
10                                  4                               4
11                                  6                              12
12                                  2                               2


        Jakub

Reply via email to