llvm-project/llvm/test/Analysis/ValueTracking
Sanjoy Das 10df497a1f Reduce dependence on pointee types when deducing dereferenceability
Summary:
Change some of the internal interfaces in Loads.cpp to keep track of the
number of bytes we're trying to prove dereferenceable using an explicit
`Size` parameter.

Before this, the `Size` parameter was implicitly inferred from the
pointee type of the pointer whose dereferenceability we were trying to
prove, causing us to be conservative around bitcasts. This was
unfortunate since bitcast instructions are no-ops and should never
break optimizations.  With an explicit `Size` parameter, we're more
precise (as shown in the test cases), and the code is simpler.

We should eventually move towards a `DerefQuery` struct that groups
together a base pointer, an offset, a size and an alignment; but this
patch is a first step.

Reviewers: apilipenko, dblaikie, hfinkel, reames

Subscribers: mcrosier, llvm-commits

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

llvm-svn: 271406
2016-06-01 16:47:45 +00:00
..
assume.ll [ValueTracking] do not overwrite analysis results already computed 2015-06-15 05:46:29 +00:00
deref-bitcast-of-gep.ll Reduce dependence on pointee types when deducing dereferenceability 2016-06-01 16:47:45 +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 Use DL preferred alignment for alloca in Value::getPointerAlignment 2016-04-27 10:42:29 +00:00
monotonic-phi.ll [ValueTracking] Teach isKnownNonZero about monotonically increasing PHIs 2015-09-29 14:08:45 +00:00
pr23011.ll [ValueTracking] Fix PR23011. 2015-03-25 22:33:53 +00:00