llvm-project/llvm/test/Transforms/FunctionAttrs
Johannes Doerfert eb4f41dfe5 [Attributor] Really use the executed-context
Before we did not follow casts and geps when we looked at the users of a
pointer in the pointers must-be-executed-context. This caused us to fail
to determine if it was accessed for sure. With this change we follow
such users now.

The above extension exposed problems in getKnownNonNullAndDerefBytesForUse
which did not always check what the base pointer was. We also did not
handle negative offsets as conservative as we have to without explicit
loop handling. Finally, we should not derive a huge number if we access
a pointer that was traversed backwards first.

The problems exposed by this functional change are already tested in the
existing test cases as is the functional change.

Differential Revision: https://reviews.llvm.org/D69647
2019-10-31 15:09:45 -05:00
..
2008-09-03-Mutual.ll
2008-09-03-ReadNone.ll
2008-09-03-ReadOnly.ll
2008-09-13-VolatileRead.ll
2008-12-29-Constant.ll
2009-01-02-LocalStores.ll
2010-10-30-volatile.ll
align.ll [Attributor] Make liveness "edge-based" 2019-10-31 00:35:18 -05:00
arg_nocapture.ll [Attributor] Really use the executed-context 2019-10-31 15:09:45 -05:00
arg_returned.ll [Attributor] Liveness for values 2019-10-31 00:16:36 -05:00
assume.ll
atomic.ll Add, and infer, a nofree function attribute 2019-07-08 15:57:56 +00:00
callbacks.ll [Attributor] Handle `null` differently in capture and alias logic 2019-10-10 05:33:21 +00:00
comdat-ipo.ll IR: print value numbers for unnamed function arguments 2019-08-03 14:28:34 +00:00
convergent.ll
dereferenceable.ll [Attributor] Really use the executed-context 2019-10-31 15:09:45 -05:00
fn_noreturn.ll [Attributor] Make liveness "edge-based" 2019-10-31 00:35:18 -05:00
heap_to_stack.ll [Attributor] Add "free"-based heap2stack deduction 2019-10-30 20:57:57 -05:00
incompatible_fn_attrs.ll
int_sideeffect.ll
internal-noalias.ll [Attributor] Make liveness "edge-based" 2019-10-31 00:35:18 -05:00
liveness.ll [Attributor] Make liveness "edge-based" 2019-10-31 00:35:18 -05:00
misc.ll [Attributor] Liveness for values 2019-10-31 00:16:36 -05:00
naked_functions.ll IR: print value numbers for unnamed function arguments 2019-08-03 14:28:34 +00:00
new_attributes.ll [Attributor] Liveness for values 2019-10-31 00:16:36 -05:00
noalias_returned.ll [Attributor] Liveness for values 2019-10-31 00:16:36 -05:00
nocapture.ll [Attributor] Really use the executed-context 2019-10-31 15:09:45 -05:00
nofree-attributor.ll [Attributor] Deduce memory behavior of functions and arguments 2019-10-07 21:07:57 +00:00
nofree.ll Add, and infer, a nofree function attribute 2019-07-08 15:57:56 +00:00
nonnull-global.ll
nonnull.ll [Attributor] Make AANonNull perform context sensitive queries 2019-10-31 14:47:06 -05:00
norecurse.ll [Attributor] Shortcut no-return through will-return 2019-10-13 21:25:53 +00:00
noreturn_async.ll [Attributor] Make liveness "edge-based" 2019-10-31 00:35:18 -05:00
noreturn_sync.ll [Attributor] Make liveness "edge-based" 2019-10-31 00:35:18 -05:00
nosync.ll [Attributor] Really use the executed-context 2019-10-31 15:09:45 -05:00
nounwind.ll [Attributor][FIX] NullPointerIsDefined needs the pointer AS (AANonNull) 2019-10-13 20:48:26 +00:00
operand-bundles-scc.ll Add, and infer, a nofree function attribute 2019-07-08 15:57:56 +00:00
optnone-simple.ll
optnone.ll
out-of-bounds-iterator-bug.ll
read-write-scc.ll [FunctionAttrs] Remove readonly and writeonly assertion 2019-07-15 17:31:26 +00:00
read_write_returned_arguments_scc.ll [Attributor][NFCI] Improve the usage of IntegerStates 2019-10-31 01:05:52 -05:00
readattrs.ll [Attributor][MemBehavior] Fallback to the function state for arguments 2019-10-13 20:47:16 +00:00
readnone.ll IR: print value numbers for unnamed function arguments 2019-08-03 14:28:34 +00:00
returned.ll
value-simplify.ll [Attributor] Make liveness "edge-based" 2019-10-31 00:35:18 -05:00
willreturn.ll [Attributor] Deduce memory behavior of functions and arguments 2019-10-07 21:07:57 +00:00
writeonly.ll LLVM: Optimization Pass: Remove conflicting attribute, if any, before 2019-09-11 14:26:22 +00:00