llvm-6502/test/Transforms/IndVarSimplify
Sanjoy Das 574e01c32e Teach ScalarEvolution to exploit min and max expressions when proving
isKnownPredicate.

The motivation for this change is to optimize away checks in loops
like this:

    limit = min(t, len)
    for (i = 0 to limit)
      if (i >= len || i < 0) throw_array_of_of_bounds();
      a[i] = ...

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



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224285 91177308-0d34-0410-b5e6-96231b3b80d8
2014-12-15 22:50:15 +00:00
..
NVPTX Disable indvar widening if arithmetics on the wider type are more expensive 2014-11-12 18:09:15 +00:00
2002-09-09-PointerIndVar.ll
2003-04-16-ExprAnalysis.ll
2003-09-23-NotAtTop.ll Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 01:28:40 +00:00
2003-12-10-RemoveInstrCrash.ll
2003-12-15-Crash.ll
2004-03-10-PHIInsertionBug.ll
2004-04-05-InvokeCastCrash.ll Move TargetData to DataLayout. 2012-10-08 16:39:34 +00:00
2004-04-07-ScalarEvolutionCrash.ll
2005-02-11-InvokeCrash.ll
2005-02-17-TruncateExprCrash.ll
2005-02-26-ExitValueCompute.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2005-06-15-InstMoveCrash.ll
2005-11-18-Crash.ll
2006-03-31-NegativeStride.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
2006-06-16-Indvar-LCSSA-Crash.ll
2006-09-20-LFTR-Crash.ll
2006-12-10-BitCast.ll
2007-01-06-TripCount.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
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 Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
2009-04-15-shorten-iv-vars-2.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
2009-04-22-IndvarCrash.ll
2009-04-27-Floating.ll
2009-05-24-useafterfree.ll
2011-09-10-widen-nsw.ll [BUG][INDVAR] Fix for PR21014: wrong SCEV operands commuting for non-commutative instructions 2014-10-02 13:01:15 +00:00
2011-09-19-vectoriv.ll [indvars] Fix PR10946: SCEV cannot handle Vector IVs. 2011-09-19 17:54:39 +00:00
2011-09-27-hoistsext.ll Test case for r140670: indvars should hoist sext. 2011-09-28 02:13:32 +00:00
2011-10-27-lftrnull.ll IndVarSimplify: Don't let LFTR compare against a poison value 2014-09-03 23:03:18 +00:00
2011-11-01-lftrptr.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2011-11-15-multiexit.ll Fix SCEV overly optimistic back edge taken count for multi-exit loops. 2011-11-16 00:52:40 +00:00
2011-11-17-selfphi.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2012-07-17-lftr-undef.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2012-10-19-congruent-constant.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
2014-06-21-congruent-constant.ll Add a description to the test from r211433 explaining why it's written that way. 2014-06-22 12:22:04 +00:00
ada-loops.ll Remove redundant -enable-iv-rewrite=false flags from test cases. 2012-03-22 17:09:04 +00:00
ashr-tripcount.ll Removed colons from some target datalayout strings in test, since they don't match the required format. 2011-10-12 22:24:17 +00:00
avoid-i0.ll Upgrade syntax of tests using volatile instructions to use 'load volatile' instead of 'volatile load', which is archaic. 2011-11-27 06:54:59 +00:00
backedge-on-min-max.ll Teach ScalarEvolution to exploit min and max expressions when proving 2014-12-15 22:50:15 +00:00
casted-argument.ll
crash.ll Tests: rewrite 'opt ... %s' to 'opt ... < %s' so that opt does not emit a ModuleID 2012-12-30 02:33:22 +00:00
dangling-use.ll
divide-pointer.ll
dont-recompute.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
elim-extend.ll Remove redundant -enable-iv-rewrite=false flags from test cases. 2012-03-22 17:09:04 +00:00
eliminate-comparison.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
eliminate-max.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
eliminate-rem.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
exit_value_tests.ll
floating-point-iv.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
indirectbr.ll
interesting-invoke-use.ll
iterationCount_zext_or_trunc.ll
iv-fold.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
iv-sext.ll Removed colons from some target datalayout strings in test, since they don't match the required format. 2011-10-12 22:24:17 +00:00
iv-widen.ll Reapply r198654 "indvars: sink truncates outside the loop." 2014-01-07 06:59:12 +00:00
iv-zext.ll Disallow the undocumented practice of starting the datalayout string with '-'. 2012-11-23 14:51:42 +00:00
lcssa-preservation.ll [LPM] Fix PR18642, a pretty nasty bug in IndVars that "never mattered" 2014-01-29 04:40:19 +00:00
lftr_simple.ll
lftr-address-space-pointers.ll IndVarSimplify: Don't let LFTR compare against a poison value 2014-09-03 23:03:18 +00:00
lftr-extend-const.ll IndVarSimplify: Allow LFTR to fire more often 2014-11-18 02:20:58 +00:00
lftr-other-uses.ll
lftr-promote.ll
lftr-reuse.ll IndVarSimplify: Don't let LFTR compare against a poison value 2014-09-03 23:03:18 +00:00
lftr-zext.ll Fix a bug in LinearFunctionTestReplace that created invalid loop exit checks. 2013-10-24 05:29:56 +00:00
loop_evaluate7.ll
loop_evaluate8.ll
loop_evaluate9.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
loop_evaluate10.ll Fix the remaining TCL-style quotes found in the testsuite. This is 2012-07-02 19:09:46 +00:00
loop_evaluate11.ll
loop_evaluate_1.ll Add test case for PR12377, it was fixed by r194116. 2013-11-06 11:55:41 +00:00
loop_evaluate_2.ll
loop_evaluate_3.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
loop_evaluate_4.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
loop_evaluate_5.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
loop_evaluate_6.ll Rewrite SCEV's backedge taken count computation. 2013-11-06 02:08:26 +00:00
masked-iv.ll
no-iv-rewrite.ll [IndVarSimplify] Widen loop compare instructions. 2014-09-17 14:10:33 +00:00
overflowcheck.ll Add support to indvars for optimizing sadd.with.overflow. 2013-12-23 23:31:49 +00:00
phi-uses-value-multiple-times.ll Revert the test moves from 176733. Use "REQUIRES: asserts" instead. 2013-03-12 16:27:52 +00:00
polynomial-expand.ll
pr18223.ll ScalarEvolution: Fix handling of AddRecs in isKnownPredicate 2014-05-23 00:06:56 +00:00
pr20680.ll IndVarSimplify: Don't let LFTR compare against a poison value 2014-09-03 23:03:18 +00:00
preserve-signed-wrap.ll Remove redundant -enable-iv-rewrite=false flags from test cases. 2012-03-22 17:09:04 +00:00
promote-iv-to-eliminate-casts.ll
sharpen-range.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
shrunk-constant.ll Convert all tests using TCL-style quoting to use shell-style quoting. 2012-07-02 12:47:22 +00:00
signed-trip-count.ll
single-element-range.ll
sink-alloca.ll Upgrade syntax of tests using volatile instructions to use 'load volatile' instead of 'volatile load', which is archaic. 2011-11-27 06:54:59 +00:00
sink-trapping.ll
tripcount_compute.ll Fix PR18449: SCEV needs more precise max BECount for multi-exit loop. 2014-01-15 06:42:11 +00:00
tripcount_infinite.ll
udiv-invariant-but-traps.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
udiv.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
uglygep.ll
ult-sub-to-eq.ll Update Transforms tests to use CHECK-LABEL for easier debugging. No functionality change. 2013-07-14 01:42:54 +00:00
use-range-metadata.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
variable-stride-ivs-0.ll Remove redundant -enable-iv-rewrite=false flags from test cases. 2012-03-22 17:09:04 +00:00
variable-stride-ivs-1.ll
verify-scev.ll [IndVarSimplify] Widen loop compare instructions. 2014-09-17 14:10:33 +00:00
widen-loop-comp.ll Teach ScalarEvolution to sharpen range information. 2014-11-13 00:00:58 +00:00
widen-nsw.ll Teach indvars to generate nsw/nuw flags when widening an induction variable. 2013-07-14 02:50:07 +00:00