[PATCH] Infer known bits from dominating conditions

Philip Reames listmail at philipreames.com
Tue Feb 17 17:09:58 PST 2015

Here are the O3 numbers for a Release build (without asserts):
-O3 -value-tracking-dom-conditions=1: 11.045-11.319
-O3 -value-tracking-dom-conditions=0: 10.989-11.300

Taking the two extremes, that's about a 300 ms difference at worst.  That's about 2.7%.  Given the (informally measured) variance between runs, that's within the noise.

In terms of effectiveness, this allows an extra 500 inst combines (out of ~50k).  The resulting IR is slightly larger, though I can't easily determine why.  The biggest difference is a lot more nsw and nuw markers are being added.   It appears that instcombine is now handling some cases that LVI and GVN would have previously gotten since the stats on those drop slightly.  (This has the potential of making those passes more powerful due by avoiding pass ordering issues.)  I do see both loop vectorizer and memcpyopt kicking in one extra time each.  I have not measured execution time of sqlite.



More information about the llvm-commits mailing list