llvm/test/Analysis/ValueTracking
Matthias Braun e152c1527d InstCombine: Restrict computeKnownBits() on all Values to OptLevel > 2
As part of r251146 InstCombine was extended to call computeKnownBits on
every value in the function to determine whether it happens to be
constant. This increases typical compiletime by 1-3% (5% in irgen+opt
time) in my measurements. On the other hand this case did not trigger
once in the whole llvm-testsuite.

This patch introduces the notion of ExpensiveCombines which are only
enabled for OptLevel > 2. I removed the check in InstructionSimplify as
that is called from various places where the OptLevel is not known but
given the rarity of the situation I think a check in InstCombine is
enough.

Differential Revision: http://reviews.llvm.org/D16835

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@263047 91177308-0d34-0410-b5e6-96231b3b80d8
2016-03-09 18:47:11 +00:00
..
assume.ll [ValueTracking] do not overwrite analysis results already computed 2015-06-15 05:46:29 +00:00
known-bits-from-range-md.ll InstCombine: Restrict computeKnownBits() on all Values to OptLevel > 2 2016-03-09 18:47:11 +00:00
known-non-equal.ll [ValueTracking] Add a new predicate: isKnownNonEqual() 2015-10-22 13:18:42 +00:00
known-power-of-two.ll [ValueTracking] fix bug computing isKnownToBeAPowerOfTwo() with arithmetic shift right (PR25900) 2015-12-30 22:40:52 +00:00
knownnonzero-shift.ll [ValueTracking] Extend r251146 to catch a fairly common case 2015-10-26 14:10:46 +00:00
knownzero-shift.ll [ValueTracking] Teach isKnownNonZero a new trick 2015-09-24 16:06:32 +00:00
memory-dereferenceable.ll [gc.statepoint] Change gc.statepoint intrinsic's return type to token type instead of i32 type 2015-12-26 07:54:32 +00:00
monotonic-phi.ll [ValueTracking] Teach isKnownNonZero about monotonically increasing PHIs 2015-09-29 14:08:45 +00:00
pr23011.ll