llvm-project/llvm/test/Transforms/IndVarSimplify
Shiva Chen 2c864551df [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label.
In order to set breakpoints on labels and list source code around
labels, we need collect debug information for labels, i.e., label
name, the function label belong, line number in the file, and the
address label located. In order to keep these information in LLVM
IR and to allow backend to generate debug information correctly.
We create a new kind of metadata for labels, DILabel. The format
of DILabel is

!DILabel(scope: !1, name: "foo", file: !2, line: 3)

We hope to keep debug information as much as possible even the
code is optimized. So, we create a new kind of intrinsic for label
metadata to avoid the metadata is eliminated with basic block.
The intrinsic will keep existing if we keep it from optimized out.
The format of the intrinsic is

llvm.dbg.label(metadata !1)

It has only one argument, that is the DILabel metadata. The
intrinsic will follow the label immediately. Backend could get the
label metadata through the intrinsic's parameter.

We also create DIBuilder API for labels to be used by Frontend.
Frontend could use createLabel() to allocate DILabel objects, and use
insertLabel() to insert llvm.dbg.label intrinsic in LLVM IR.

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

Patch by Hsiangkai Wang.

llvm-svn: 331841
2018-05-09 02:40:45 +00:00
..
AMDGPU AMDGPU: Mark all unspecified CC functions in tests as amdgpu_kernel 2017-03-21 21:39:51 +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 [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
2005-06-15-InstMoveCrash.ll
2005-11-18-Crash.ll
2006-03-31-NegativeStride.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +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 [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
2007-06-06-DeleteDanglesPtr.ll
2007-11-23-BitcastCrash.ll
2008-06-15-SCEVExpanderBug.ll
2008-09-02-IVType.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
2008-10-03-CouldNotCompute.ll
2008-11-25-APFloatAssert.ll
2009-04-14-shorten_iv_vars.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
2009-04-15-shorten-iv-vars-2.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
2009-04-22-IndvarCrash.ll
2009-04-27-Floating.ll
2009-05-24-useafterfree.ll
2011-09-10-widen-nsw.ll
2011-09-19-vectoriv.ll
2011-09-27-hoistsext.ll
2011-10-27-lftrnull.ll ConstantFold: Fold getelementptr (i32, i32* null, i64 undef) to null. 2017-05-08 17:37:29 +00:00
2011-11-01-lftrptr.ll opt: Rename -default-data-layout flag to -data-layout and make it always override the layout. 2017-02-17 17:36:52 +00:00
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
ashr-tripcount.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
avoid-i0.ll
backedge-on-min-max.ll [PM] Port IndVarSimplify to the new pass manager 2016-06-05 18:01:19 +00:00
bec-cmp.ll
canonicalize-cmp.ll Re-enable "[IndVars] Canonicalize comparisons between non-negative values and indvars" 2017-07-08 17:17:30 +00:00
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
crash.ll
dangling-use.ll
divide-pointer.ll
dont-recompute.ll
elim-extend.ll Extend trip count instead of truncating IV in LFTR, when legal 2016-08-11 21:31:40 +00:00
eliminate-comparison.ll Re-enable "[IndVars] Canonicalize comparisons between non-negative values and indvars" 2017-07-08 17:17:30 +00:00
eliminate-max.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
eliminate-rem.ll [SimplifyIndvar] Replace the srem used by IV if we can prove both of its operands are non-negative 2017-09-25 17:39:40 +00:00
exit_value_test2.ll [SCEV/IndVars] Always compute loop exiting values if the backedge count is 0 2017-08-01 22:37:58 +00:00
exit_value_test3.ll
exit_value_tests.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
floating-point-iv.ll
huge_muls.ll [SCEV] Make MulOpsInlineThreshold lower to avoid excessive compilation time 2017-06-21 07:28:13 +00:00
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 [IndVars] Change the order to compute WidenAddRec in widenIVUse. 2016-11-15 17:34:52 +00:00
iv-widen.ll [IndVars] Change the order to compute WidenAddRec in widenIVUse. 2016-11-15 17:34:52 +00:00
iv-zext.ll
lcssa-preservation.ll
lftr-address-space-pointers.ll [SCEV] Try to reuse existing value during SCEV expansion 2016-02-04 01:27:38 +00:00
lftr-extend-const.ll
lftr-other-uses.ll
lftr-promote.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
lftr-reuse.ll
lftr-udiv-tripcount.ll
lftr-wide-trip-count.ll Extend trip count instead of truncating IV in LFTR, when legal 2016-08-11 21:31:40 +00:00
lftr-zext.ll
lftr_disabled.ll [IndVars] Add an option to be able to disable LFTR 2017-06-09 06:11:59 +00:00
lftr_simple.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
loop-invariant-conditions.ll [NFC] Fix metadata placement in test 2018-02-15 07:13:18 +00:00
loop_evaluate7.ll
loop_evaluate8.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
loop_evaluate9.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
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 [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
loop_evaluate_3.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
loop_evaluate_4.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
loop_evaluate_5.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
loop_evaluate_6.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
lrev-existing-umin.ll
masked-iv.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
no-iv-rewrite.ll
overflow-intrinsics.ll [IndVars] Eliminate op.with.overflow when possible (re-apply) 2016-05-29 00:36:25 +00:00
phi-uses-value-multiple-times.ll
polynomial-expand.ll
post-inc-range.ll [IndVarSimplify] Teach calculatePostIncRange to take guards into account 2016-10-19 19:43:54 +00:00
pr18223.ll
pr20680.ll
pr22222.ll
pr24356.ll
pr24783.ll [SCEV] Try to reuse existing value during SCEV expansion 2016-02-04 01:27:38 +00:00
pr24804.ll [SCEVExpander] Have hoistIVInc preserve LCSSA 2015-12-08 00:13:17 +00:00
pr24952.ll
pr24956.ll
pr25047.ll
pr25051.ll
pr25060.ll
pr25360.ll
pr25421.ll
pr25576.ll [IndVars] Fix PR25576 2016-01-17 18:12:52 +00:00
pr25578.ll [IndVars] Have getInsertPointForUses preserve LCSSA 2015-12-08 00:13:21 +00:00
pr26207.ll [SCEV] Fix PR26207 2016-01-19 20:53:51 +00:00
pr26973.ll [IndVars] Pass the right loop to isLoopInvariantPredicate 2016-03-18 20:37:07 +00:00
pr26974.ll [IndVars] Fix PR26974: make sure replaceCongruentIVs doesn't break LCSSA 2016-03-21 12:44:29 +00:00
pr27133.ll [IndVarSimplify] Don't insert after a catchswitch 2016-03-30 21:12:06 +00:00
pr28935.ll [IndVars] Ignore (s|z)exts that don't extend the induction variable 2016-08-13 00:58:31 +00:00
pr32045.ll [ValueTracking] Don't do an unchecked shift in ComputeNumSignBits 2017-02-25 20:30:45 +00:00
pr35406.ll [SCEV] Fix the movement of insertion point in expander. PR35406. 2017-12-15 05:24:42 +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-sdiv-by-udiv.ll [SimplifyIndvar] Replace the sdiv used by IV if we can prove both of its operands are non-negative 2017-03-30 21:56:56 +00:00
replace-srem-by-urem.ll [SimplifyIndVar] Constant fold IV users 2017-09-27 03:11:46 +00:00
rewrite-loop-exit-value.ll [IndVarSimplify] Rewrite loop exit values with their initial values from loop preheader 2016-01-27 07:40:41 +00:00
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 [PM] Port IndVarSimplify to the new pass manager 2016-06-05 18:01:19 +00:00
shrunk-constant.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
signed-trip-count.ll [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
single-element-range.ll
sink-alloca.ll
sink-trapping.ll [LLVM] Remove unwanted --check-prefix=CHECK from unit tests. NFC. 2016-04-19 23:51:52 +00:00
strengthen-overflow.ll [IndVarSimplify] Add AShr exact flags using induction variables ranges. 2017-07-05 13:25:58 +00:00
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 [IndVars] Un-grepify test; NFC 2016-08-03 20:53:23 +00:00
ult-sub-to-eq.ll Extend trip count instead of truncating IV in LFTR, when legal 2016-08-11 21:31:40 +00:00
use-range-metadata.ll
variable-stride-ivs-0.ll
variable-stride-ivs-1.ll
verify-scev.ll
widen-loop-comp.ll Re-enable "[IndVars] Canonicalize comparisons between non-negative values and indvars" 2017-07-08 17:17:30 +00:00
widen-nsw.ll
zext-nuw.ll ScalarEvolution: do not set nuw when creating exprs of form <expr> + <all-ones>. 2015-11-20 01:26:13 +00:00