llvm-project/llvm/test/Transforms/SCCP
Nikita Popov 4564974504 [SCCP] Propagate inequalities
Teach SCCP to create notconstant lattice values from inequality
assumes and nonnull metadata, and update getConstant() to make
use of them. Additionally isOverdefined() needs to be changed to
consider notconstant an overdefined value.

Handling inequality branches is delayed until our branch on undef
story in other passes has been improved.

Differential Revision: https://reviews.llvm.org/D83643
2020-08-04 20:20:52 +02:00
..
2002-05-02-MissSecondInst.ll
2002-05-20-MissedIncomingValue.ll
2002-05-21-InvalidSimplify.ll
2002-08-30-GetElementPtrTest.ll
2003-06-24-OverdefinedPHIValue.ll
2003-08-26-InvokeHandling.ll
2004-11-16-DeadInvoke.ll
2004-12-10-UndefBranchBug.ll
2006-10-23-IPSCCP-Crash.ll
2006-12-04-PackedType.ll
2006-12-19-UndefBug.ll Recommit "[SCCP] Remove forcedconstant, go to overdefined instead" 2020-02-15 18:36:44 +01:00
2007-05-16-InvokeCrash.ll
2008-01-27-UndefCorrelate.ll
2008-04-22-multiple-ret-sccp.ll
2008-05-23-UndefCallFold.ll
2008-06-09-WeakProp.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
2009-01-14-IPSCCP-Invoke.ll
2009-05-27-VectorOperandZero.ll
2009-09-24-byval-ptr.ll [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). 2020-07-09 17:16:15 +01:00
PR16052.ll [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). 2020-07-09 17:16:15 +01:00
PR26044.ll [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). 2020-07-09 17:16:15 +01:00
PR43857.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
apfloat-basictest.ll
apint-array.ll
apint-basictest.ll
apint-basictest2.ll
apint-basictest3.ll
apint-basictest4.ll
apint-bigarray.ll
apint-bigint.ll
apint-bigint2.ll [SCCP] Do not mark unknown loads as overdefined. 2020-02-20 22:48:58 +01:00
apint-ipsccp1.ll
apint-ipsccp2.ll
apint-ipsccp3.ll Recommit "[SCCP] Remove forcedconstant, go to overdefined instead" 2020-02-15 18:36:44 +01:00
apint-ipsccp4.ll
apint-load.ll
apint-phi.ll
apint-select.ll Recommit "[SCCP] Remove forcedconstant, go to overdefined instead" 2020-02-15 18:36:44 +01:00
apint-xor.ll [SCCP] Add a few more tests for conditional propagation,XOR. 2020-03-22 21:43:33 +00:00
arg-count-mismatch.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
arg-type-mismatch.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
assume.ll [SCCP] Propagate inequalities 2020-08-04 20:20:52 +02:00
atomic-load-store.ll
atomic.ll
binaryops-constexprs.ll [SCCP] Add test case for binary ops with constant expressions. 2020-04-09 13:38:43 +01:00
binaryops-range-special-cases.ll [SCCP] Use constant ranges for PHI nodes. 2020-03-19 12:45:33 +00:00
bitcast.ll
calltest.ll
comdat-ipo.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
conditions-iter-order.ll [SCCP] Add a few more tests for conditional propagation,XOR. 2020-03-22 21:43:33 +00:00
conditions-ranges-with-undef.ll [SCCP] Use ranges for predicate info conditions. 2020-04-07 11:09:18 +01:00
conditions-ranges.ll Reapply [SCCP] Directly remove non-feasible edges 2020-07-25 14:52:35 +02:00
constant-range-struct.ll [SCCP] Switch to widen at PHIs, stores and call edges. 2020-05-29 11:59:17 +01:00
constant-struct.ll
crash.ll
dangling-block-address.ll [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). 2020-07-09 17:16:15 +01:00
deadarg.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
definite-initializer.ll
domtree-update.ll Reapply [SCCP] Directly remove non-feasible edges 2020-07-25 14:52:35 +02:00
dont-zap-return.ll
float-nan-simplification.ll Recommit "[SCCP] Use SimplifyBinOp for non-integer constant/expressions & overdef." 2020-04-14 11:48:52 +01:00
float-phis.ll [ValueLattice] Add new state for undef constants. 2020-03-14 17:19:59 +00:00
fp-bc-icmp-const-fold.ll Re-land "[PowerPC] Remove QPX/A2Q BGQ/BGP CNK support" 2020-07-28 14:00:11 +00:00
global-alias-constprop.ll
global.ll [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). 2020-07-09 17:16:15 +01:00
indirectbr.ll [SCCP] Add additional multi-edge + phi tests (NFC) 2020-07-22 22:10:23 +02:00
int-phis.ll [ValueLattice] Add new state for undef constants. 2020-03-14 17:19:59 +00:00
ip-add-range-to-call.ll [SCCP] Add range metadata to call sites with known return ranges. 2020-07-21 10:06:54 +01:00
ip-constant-ranges.ll [SCCP] Use ranges for predicate info conditions. 2020-04-07 11:09:18 +01:00
ip-ranges-binaryops.ll [SCCP] Use constant ranges for binary operators. 2020-03-19 09:35:48 +00:00
ip-ranges-casts.ll [SCCP] Turn sext into zext for non-negative ranges. 2020-06-19 10:17:55 +01:00
ip-ranges-phis.ll [SCCP] Use constant ranges for PHI nodes. 2020-03-19 12:45:33 +00:00
ip-ranges-select.ll [SCCP] Use constant ranges for select, if cond is overdefined. 2020-03-18 09:26:02 +00:00
ip-ranges-sext.ll [SCCP] Turn sext into zext for non-negative ranges. 2020-06-19 10:17:55 +01:00
ipsccp-addr-taken.ll
ipsccp-basic.ll Recommit "[SCCP] Remove forcedconstant, go to overdefined instead" 2020-02-15 18:36:44 +01:00
ipsccp-branch-unresolved-undef.ll
ipsccp-cycles.ll [SCCP] Switch to widen at PHIs, stores and call edges. 2020-05-29 11:59:17 +01:00
ipsccp-phi-one-pred-dead.ll
ipsccp-predinfo-order.ll
ipsccp-preserve-analysis.ll [NewPM] Don't print 'Invalidating all non-preserved analyses' 2020-07-30 19:40:29 -07:00
ipsccp-range-crashes.ll [SCCP] Precommit some additional tests for integer ranges. 2020-03-18 11:34:04 +00:00
ipsccp-ssa-copy-nested-conds.ll [SCCP] Add tests with AND/OR branch conditions. 2020-04-09 16:39:13 +01:00
ipscp-drop-argmemonly.ll [IPSCCP] Drop argmemonly after replacing pointer argument. 2020-07-25 11:52:14 +01:00
latticeval-invalidate.ll
load-store-range.ll [SCCP] Support ranges for loads and stores. 2020-04-26 13:16:47 +01:00
loadtest.ll [SCCP] Do not mark unknown loads as overdefined. 2020-02-20 22:48:58 +01:00
loadtest2.ll [SCCP] Do not mark unknown loads as overdefined. 2020-02-20 22:48:58 +01:00
logical-nuke.ll Recommit "[SCCP] Remove forcedconstant, go to overdefined instead" 2020-02-15 18:36:44 +01:00
metadata.ll [SCCP] Propagate inequalities 2020-08-04 20:20:52 +02:00
multiple_callbacks.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
musttail-call.ll [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). 2020-07-09 17:16:15 +01:00
naked-return.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
openmp_parallel_for.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
overdefined-div.ll
phi-cycle.ll [ValueLattice] Distinguish between constant ranges with/without undef. 2020-03-31 12:50:20 +01:00
phis.ll [SCCP] Use constant ranges for PHI nodes. 2020-03-19 12:45:33 +00:00
pr27712.ll
pr35357.ll
pr45185-range-predinfo.ll Recommit "[SCCP] Use ValueLatticeElement instead of LatticeVal (NFCI)" 2020-03-13 17:03:22 +00:00
predicateinfo-cond.ll Reapply [SCCP] Directly remove non-feasible edges 2020-07-25 14:52:35 +02:00
preserve-analysis.ll [BPI][NFC] Reuse post dominantor tree from analysis manager when available 2020-04-30 11:31:03 +07:00
pthreads.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
range-and-ip.ll [ValueLattice] Distinguish between constant ranges with/without undef. 2020-03-31 12:50:20 +01:00
range-and.ll [ValueLattice] Distinguish between constant ranges with/without undef. 2020-03-31 12:50:20 +01:00
ranges-sext.ll [SCCP] Turn sext into zext for non-negative ranges. 2020-06-19 10:17:55 +01:00
recursion.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
remove-call-inst.ll [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). 2020-07-09 17:16:15 +01:00
resolvedundefsin-tracked-fn.ll Reapply [SCCP] Directly remove non-feasible edges 2020-07-25 14:52:35 +02:00
return-argument.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
return-constant.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
return-constants.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
return-zapped.ll
retvalue-undef.ll
sccptest.ll
select.ll [SCCP] Use constant ranges for select, if cond is overdefined. 2020-03-18 09:26:02 +00:00
solve-after-each-resolving-undefs-for-function.ll [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). 2020-07-09 17:16:15 +01:00
struct-arg-resolve-undefs.ll
switch-constantfold-crash.ll Reapply [SCCP] Directly remove non-feasible edges 2020-07-25 14:52:35 +02:00
switch-multiple-undef.ll Recommit "[SCCP] Remove forcedconstant, go to overdefined instead" 2020-02-15 18:36:44 +01:00
switch-undef-constantfoldterminator.ll
switch.ll [SCCP] Remove dead switch cases based on range information 2020-07-30 21:21:08 +02:00
thread_local_acs.ll Recommit "[IPConstProp] Remove and move tests to SCCP." 2020-08-02 22:23:54 +01:00
ub-shift.ll Recommit "[SCCP] Use SimplifyBinOp for non-integer constant/expressions & overdef." 2020-04-14 11:48:52 +01:00
ubsan_overflow.ll
undef-resolve.ll Recommit "[SCCP] Remove forcedconstant, go to overdefined instead" 2020-02-15 18:36:44 +01:00
user-with-multiple-uses.ll [SCCP] Move tests using only ipsccp from IPConstantProp to SCCP (NFC). 2020-07-09 17:16:15 +01:00
vector-bitcast.ll Recommit "[SCCP] Use SimplifyBinOp for non-integer constant/expressions & overdef." 2020-04-14 11:48:52 +01:00
widening.ll Reapply [SCCP] Directly remove non-feasible edges 2020-07-25 14:52:35 +02:00