llvm-project/llvm/test/Transforms/Attributor
Hideto Ueno bdcbdb4848 [Attributor] Deduction based on path exploration
This patch introduces the propagation of known information based on path exploration.
For example,
```
int u(int c, int *p){
  if(c) {
     return *p;
  } else {
     return *p + 1;
  }
}
```
An argument `p` is dereferenced whatever c's value is.

For an instruction `CtxI`, we accumulate branch instructions in the must-be-executed-context of `CtxI` and then, we take the conjunction of the successors' known state.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D65593
2020-03-09 14:29:26 +09:00
..
ArgumentPromotion [Attributor] Generalize `getAssumedConstantInt` interface 2020-02-19 22:33:51 -06:00
IPConstantProp [Attributor] Deduction based on path exploration 2020-03-09 14:29:26 +09:00
reduced [Attributor][FIX] Ensure abstract attributes are existing before manifest 2020-02-14 21:44:46 -06:00
align.ll [Attributor][FIX] Avoid setting wrong load/store alignments 2020-02-19 23:46:07 -06:00
callbacks.ll [Attributor] Allow multiple uses of a casted function pointer 2020-02-19 20:43:38 -06:00
dereferenceable-1.ll [Attributor] Deduction based on path exploration 2020-03-09 14:29:26 +09:00
dereferenceable-2.ll [Attributor] Use fine-grained liveness in all helpers 2020-02-12 17:36:38 -06:00
heap_to_stack.ll [MustExecute] Add backward exploration for must-be-executed-context 2020-02-20 14:49:30 +09:00
internal-noalias.ll [Attributor] Use fine-grained liveness in all helpers 2020-02-12 17:36:38 -06:00
liveness.ll [Attributor][FIX] Disable a test to unblock the builders 2020-02-21 14:43:31 -08:00
liveness_chains.ll [Attributor] Use fine-grained liveness in all helpers 2020-02-12 17:36:38 -06:00
lvi-after-jumpthreading.ll [Attributor] AAValueConstantRange: Value range analysis using constant range 2020-01-15 16:34:23 +09:00
lvi-for-ashr.ll [Attributor] AAValueConstantRange: Value range analysis using constant range 2020-01-15 16:34:23 +09:00
memory_locations.ll [Attributor][NFC] Add more memory_location tests 2020-02-19 23:46:08 -06:00
misc.ll [MustExecute] Add backward exploration for must-be-executed-context 2020-02-20 14:49:30 +09:00
new_attributes.ll
noalias.ll [Attributor][FIX] Carefully strip casts in AANoAlias 2020-02-14 21:44:46 -06:00
nocapture-1.ll [Attributor] Use fine-grained liveness in all helpers 2020-02-12 17:36:38 -06:00
nocapture-2.ll [Attributor] Avoid REQUIRED dependences in favor of OPTIONAL ones 2020-01-23 18:42:46 -06:00
nofree.ll [Attributor][NFC] Prepare some tests to be used with update test script 2020-02-20 02:44:05 -06:00
nonnull.ll [Attributor] Deduction based on path exploration 2020-03-09 14:29:26 +09:00
norecurse.ll [Attributor] Add an Attributor CGSCC pass and run it 2020-02-08 21:27:34 -06:00
noreturn.ll [Attributor] Use fine-grained liveness in all helpers 2020-02-12 17:36:38 -06:00
noreturn_async.ll [Attributor] Collect memory accesses with their respective kind and location 2020-02-15 02:12:04 -06:00
noreturn_sync.ll [Attributor] Collect memory accesses with their respective kind and location 2020-02-15 02:12:04 -06:00
nosync.ll [Attributor] Derive memory location attributes (argmemonly, ...) 2020-02-14 19:05:51 -06:00
nounwind.ll
range.ll [Attributor] Add initial AAIsDead for arguments 2020-02-19 21:39:45 -06:00
read_write_returned_arguments_scc.ll [Attributor] Derive memory location attributes (argmemonly, ...) 2020-02-14 19:05:51 -06:00
readattrs.ll [Attributor][FIX] Handle non-pointers when following uses 2020-01-23 18:42:45 -06:00
returned.ll [Attributor] Use existing `returned` information better 2020-02-19 23:46:07 -06:00
undefined_behavior.ll [Attributor] Fold terminators before changing instructions to unreachable 2020-03-07 12:38:44 +02:00
value-simplify.ll [Attributor] Generalize `getAssumedConstantInt` interface 2020-02-19 22:33:51 -06:00
willreturn.ll [Attributor] Derive memory location attributes (argmemonly, ...) 2020-02-14 19:05:51 -06:00