hanchenye-llvm-project/llvm/test/Transforms/IndVarSimplify
David Green 4511f3fa86 [SCEV] Ensure that isHighCostExpansion takes into account what is being divided
A SCEV is not low-cost just because you can divide it by a power of 2. We need to also
check what we are dividing to make sure it too is not a high-code expansion. This helps
to not expand the exit value of certain loops, helping not to bloat the code.

The change in no-iv-rewrite.ll is reverting back to what it was testing before rL194116,
and looks a lot like the other tests in replace-loop-exit-folds.ll.

Differential Revision: https://reviews.llvm.org/D58435

llvm-svn: 355393
2019-03-05 12:12:18 +00:00
..
AMDGPU AMDGPU: Fix some outdated datalayouts in tests 2018-09-13 11:56:28 +00:00
NVPTX
2002-09-09-PointerIndVar.ll
2003-04-16-ExprAnalysis.ll
2003-09-23-NotAtTop.ll
2003-12-10-RemoveInstrCrash.ll
2003-12-15-Crash.ll
2004-03-10-PHIInsertionBug.ll
2004-04-05-InvokeCastCrash.ll
2004-04-07-ScalarEvolutionCrash.ll
2005-02-11-InvokeCrash.ll
2005-02-17-TruncateExprCrash.ll
2005-02-26-ExitValueCompute.ll
2005-06-15-InstMoveCrash.ll
2005-11-18-Crash.ll
2006-03-31-NegativeStride.ll
2006-06-16-Indvar-LCSSA-Crash.ll
2006-09-20-LFTR-Crash.ll
2006-12-10-BitCast.ll
2007-01-06-TripCount.ll
2007-06-06-DeleteDanglesPtr.ll
2007-11-23-BitcastCrash.ll
2008-06-15-SCEVExpanderBug.ll
2008-09-02-IVType.ll
2008-10-03-CouldNotCompute.ll
2008-11-25-APFloatAssert.ll
2009-04-14-shorten_iv_vars.ll
2009-04-15-shorten-iv-vars-2.ll
2009-04-22-IndvarCrash.ll
2009-04-27-Floating.ll
2009-05-24-useafterfree.ll
2011-09-10-widen-nsw.ll Revert "[SCEV] Add nuw/nsw to mul ops in StrengthenNoWrapFlags" 2018-06-19 04:09:44 +00:00
2011-09-19-vectoriv.ll
2011-09-27-hoistsext.ll
2011-10-27-lftrnull.ll
2011-11-01-lftrptr.ll
2011-11-15-multiexit.ll
2011-11-17-selfphi.ll
2012-07-17-lftr-undef.ll
2012-10-19-congruent-constant.ll
2014-06-21-congruent-constant.ll
ada-loops.ll [SimplifyIndVars] Eliminate redundant truncs 2018-06-19 04:48:34 +00:00
ashr-tripcount.ll
avoid-i0.ll
backedge-on-min-max.ll
bec-cmp.ll
canonicalize-cmp.ll
casted-argument.ll
const_phi.ll
constant-fold.ll [SimplifyIndVar] Do not fail when we constant fold an IV user to ConstantPointerNull 2017-09-29 16:32:12 +00:00
constant_result.ll [NFC] Add motivating test case for revert in rL346198 2018-11-06 02:12:44 +00:00
crash.ll
dangling-use.ll [PPC] Remove Darwin support from POWER backend. 2018-08-28 01:18:29 +00:00
divide-pointer.ll
dont-recompute.ll Return "[IndVars] Smart hard uses detection" 2018-11-08 11:54:35 +00:00
drop-exact.ll [IndVars] Drop "exact" flag from lshr and udiv when substituting their args 2018-10-11 07:22:26 +00:00
elim-extend.ll
eliminate-comparison.ll
eliminate-max.ll
eliminate-rem.ll
eliminate-trunc.ll [SimplifyIndVar] Canonicalize comparisons to unsigned while eliminating truncs 2018-07-27 09:43:39 +00:00
exit_value_test2.ll
exit_value_test3.ll
exit_value_tests.ll
floating-point-iv.ll
full_widening.ll [NFC] Add test on full IV widening 2018-09-05 10:10:59 +00:00
huge_muls.ll
indirectbr.ll
inner-loop-by-latch-cond.ll [SCEV] Re-land: Fix isKnownPredicate 2018-03-19 06:35:30 +00:00
inner-loop.ll Re-apply [SCEV] Fix isLoopEntryGuardedByCond usage 2018-02-05 05:49:47 +00:00
interesting-invoke-use.ll
iterationCount_zext_or_trunc.ll
iv-fold.ll
iv-sext.ll
iv-widen-elim-ext.ll [SimplifyIndVar] Avoid generating truncate instructions with non-hoisted Laod operand. 2018-09-07 22:41:57 +00:00
iv-widen.ll [SimplifyIndVars] Ignore dead users 2018-06-13 02:25:32 +00:00
iv-zext.ll
lcssa-preservation.ll
lftr-address-space-pointers.ll
lftr-extend-const.ll
lftr-other-uses.ll
lftr-promote.ll
lftr-reuse.ll [SimplifyIndVars] Ignore dead users 2018-06-13 02:25:32 +00:00
lftr-udiv-tripcount.ll
lftr-wide-trip-count.ll
lftr-zext.ll
lftr_disabled.ll
lftr_simple.ll
loop-invariant-conditions.ll [SimplifyIndVars] Ignore dead users 2018-06-13 02:25:32 +00:00
loop_evaluate7.ll
loop_evaluate8.ll
loop_evaluate9.ll
loop_evaluate10.ll [SCEV] Make exact taken count calculation more optimistic 2018-03-27 07:30:38 +00:00
loop_evaluate11.ll
loop_evaluate_1.ll
loop_evaluate_2.ll
loop_evaluate_3.ll
loop_evaluate_4.ll
loop_evaluate_5.ll
loop_evaluate_6.ll
lrev-existing-umin.ll Return "[IndVars] Smart hard uses detection" 2018-11-08 11:54:35 +00:00
masked-iv.ll
no-iv-rewrite.ll [SCEV] Ensure that isHighCostExpansion takes into account what is being divided 2019-03-05 12:12:18 +00:00
overflow-intrinsics.ll
phi-uses-value-multiple-times.ll
polynomial-expand.ll
post-inc-range.ll
pr18223.ll
pr20680.ll
pr22222.ll
pr24356.ll
pr24783.ll
pr24804.ll
pr24952.ll
pr24956.ll
pr25047.ll
pr25051.ll
pr25060.ll
pr25360.ll
pr25421.ll
pr25576.ll
pr25578.ll [SimplifyIndVars] Ignore dead users 2018-06-13 02:25:32 +00:00
pr26973.ll
pr26974.ll
pr27133.ll
pr28935.ll
pr32045.ll
pr35406.ll [SCEV] Fix the movement of insertion point in expander. PR35406. 2017-12-15 05:24:42 +00:00
pr38674.ll [IndVars] Fix usage of SCEVExpander to not mess with SCEVConstant. PR38674 2018-09-04 05:01:35 +00:00
pr38855.ll [NFC] Specify test's option to reduce reliance on defaults 2018-09-11 06:34:43 +00:00
pr39673.ll [TEST] Add missing opportunity test for PR39673 2019-02-11 12:58:18 +00:00
pr40454.ll [IndVars] Fix corner case with unreachable Phi inputs. PR40454 2019-02-12 09:59:44 +00:00
preserve-signed-wrap.ll
promote-iv-to-eliminate-casts.ll [SCEV] Prove implications for SCEVUnknown Phis 2018-04-04 05:46:47 +00:00
replace-iv-with-loop-invariant.ll [SimplifyIndVar] Replace IVUsers with loop invariant whenever possible 2017-10-12 02:54:11 +00:00
replace-loop-exit-folds.ll [SCEV] Ensure that isHighCostExpansion takes into account what is being divided 2019-03-05 12:12:18 +00:00
replace-sdiv-by-udiv.ll
replace-srem-by-urem.ll
rewrite-loop-exit-value.ll
scev-phi-debug-info.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
scevexpander-phi-base-case.ll [ScalarEvolution] Fix base condition in isNormalAddRecPHI. 2017-12-14 14:47:52 +00:00
sharpen-range.ll
shrunk-constant.ll [SCEV] Add [zs]ext{C,+,x} -> (D + [zs]ext{C-D,+,x})<nuw><nsw> transform 2018-07-25 18:01:41 +00:00
signed-trip-count.ll
single-element-range.ll
sink-alloca.ll
sink-from-preheader.ll [IndVars] Set Changed if sinkUnusedInvariants changes IR. PR38863 2018-09-10 06:32:00 +00:00
sink-trapping.ll
strengthen-overflow.ll
tripcount_compute.ll
tripcount_infinite.ll
udiv-invariant-but-traps.ll
udiv.ll Revert rL316568 because of sudden performance drop on ARM 2017-10-27 04:17:44 +00:00
uglygep.ll
ult-sub-to-eq.ll
use-range-metadata.ll
variable-stride-ivs-0.ll
variable-stride-ivs-1.ll
verify-scev.ll
widen-loop-comp.ll [SimplifyIndVars] Eliminate redundant truncs 2018-06-19 04:48:34 +00:00
widen-nsw.ll
zext-nuw.ll