llvm-project/llvm/test/Transforms/SimplifyCFG
Jeremy Morse 9b4cfa55b1 [DebugInfo] Give inlinable calls DILocs (PR39807)
In PR39807 we incorrectly handle circumstances where calls are common'd
from conditional blocks into the parent BB. Calls that can be inlined
must always have DebugLocs, however we strip them during commoning, which
the IR verifier asserts on.

Fix this by using applyMergedLocation: it will perform the same DebugLoc
stripping of conditional Locs, but will also generate an unknown location
DebugLoc that satisfies the requirement for inlinable calls to always have
locations.

Some of the prior logic for selecting a DebugLoc is now likely redundant;
I'll generate a follow-up to remove it (involves editing more regression
tests).

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

llvm-svn: 347782
2018-11-28 17:58:45 +00:00
..
AArch64 [SimplifyCFG] Rewrite SinkThenElseCodeToEnd 2016-08-22 19:07:15 +00:00
AMDGPU AMDGPU: Remove -mcpu=SI 2017-08-07 18:30:35 +00:00
ARM [SimplifyCFG] use pass options and remove the latesimplifycfg pass 2017-10-28 18:43:07 +00:00
Hexagon [Hexagon] Remove trailing spaces, NFC 2017-11-22 20:43:00 +00:00
Mips
PowerPC Fix some misc. -enable-var-scope violations 2017-11-13 01:47:52 +00:00
RISCV [RISCV] Implement isTruncateFree 2018-04-26 13:37:00 +00:00
SPARC
X86 [SimplifyCFG] Put an alignment on generated switch tables 2018-09-12 09:54:17 +00:00
2002-05-21-PHIElimination.ll
2002-09-24-PHIAssertion.ll
2003-03-07-DominateProblem.ll
2003-08-05-InvokeCrash.ll
2003-08-17-BranchFold.ll
2003-08-17-BranchFoldOrdering.ll
2003-08-17-FoldSwitch-dbg.ll
2003-08-17-FoldSwitch.ll
2004-12-10-SimplifyCFGCrash.ll
2005-06-16-PHICrash.ll
2005-08-01-PHIUpdateFail.ll
2005-10-02-InvokeSimplify.ll
2005-12-03-IncorrectPHIFold.ll
2006-02-17-InfiniteUnroll.ll
2006-06-12-InfLoop.ll
2006-08-03-Crash.ll [PPC] Remove Darwin support from POWER backend. 2018-08-28 01:18:29 +00:00
2006-10-19-UncondDiv.ll
2006-12-08-Ptr-ICmp-Branch.ll
2007-11-22-InvokeNoUnwind.ll
2007-12-21-Crash.ll
2008-01-02-hoist-fp-add.ll
2008-05-16-PHIBlockMerge.ll
2008-07-13-InfLoopMiscompile.ll
2008-09-08-MultiplePred.ll
2008-09-17-SpeculativeHoist.ll
2008-10-03-SpeculativelyExecuteBeforePHI.ll
2008-12-06-SingleEntryPhi.ll
2008-12-16-DCECond.ll
2009-01-18-PHIPropCrash.ll
2009-05-12-externweak.ll
2010-03-30-InvokeCrash.ll
2011-03-08-UnreachableUse.ll
2011-09-05-TrivialLPad.ll
BrUnwind.ll
ConditionalTrappingConstantExpr.ll [Constant] remove fdiv and frem from canTrap() 2016-08-29 15:27:17 +00:00
CoveredLookupTable.ll [SimplifyCFG] use pass options and remove the latesimplifycfg pass 2017-10-28 18:43:07 +00:00
DeadSetCC.ll
EmptyBlockMerge.ll
EqualPHIEdgeBlockMerge.ll
ForwardSwitchConditionToPHI.ll [SimplifyCFG] use pass options and remove the latesimplifycfg pass 2017-10-28 18:43:07 +00:00
HoistCode.ll
InfLoop.ll
MagicPointer.ll
PHINode.ll
PR9946.ll
PR16069.ll
PR17073.ll
PR25267.ll
PR27615-simplify-cond-br.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
PR29163.ll [SimplifyCFG] Hoisting invalidates metadata 2016-08-29 17:14:08 +00:00
PR30210.ll Add a test for r280191 2016-09-16 02:43:36 +00:00
PhiBlockMerge.ll
PhiBlockMerge2.ll
PhiEliminate.ll
PhiEliminate2.ll
PhiEliminate3.ll
PhiNoEliminate.ll
SpeculativeExec.ll [SimplifyCFG] Regenerate some test cases using update_test_checks.py to prepare for an upcoming commit. NFC 2017-10-31 19:03:49 +00:00
UncondBranchToHeader.ll [SimplifyCFG] Re-apply Relax restriction for folding unconditional branches 2018-02-08 07:16:29 +00:00
UncondBranchToReturn.ll
UnreachableEliminate.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
assume.ll
attr-convergent.ll
attr-noduplicate.ll
basictest.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
branch-cond-merge.ll
branch-cond-prop.ll
branch-fold-dbg.ll Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
branch-fold-test.ll
branch-fold-threshold.ll [SimplifyCFG] Fix a cost modeling oversight in branch commoning 2018-08-30 00:03:02 +00:00
branch-fold.ll
branch-phi-thread.ll
bug-25299.ll
clamp.ll
combine-parallel-mem-md.ll
common-dest-folding.ll
critedge-assume.ll Remove alignment argument from memcpy/memmove/memset in favour of alignment attributes (Step 1) 2018-01-19 17:13:12 +00:00
dbginfo.ll
dce-cond-after-folding-terminator.ll Revert "Simplify blockaddress usage before giving up in MergeBlockIntoPredecessor" 2018-06-18 23:20:08 +00:00
div-rem-pairs.ll [SimplifyCFG] update test comments; NFC 2017-09-12 23:28:11 +00:00
duplicate-landingpad.ll
duplicate-phis.ll
empty-catchpad.ll
empty-cleanuppad.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
extract-cost.ll
fold-branch-debuginvariant.ll [SimplifyCFG] Fix a debug invariant bug in FoldBranchToCommonDest() 2018-05-18 08:52:15 +00:00
fold-debug-info.ll [SimplifyCFG] Fix a crash when folding PHIs. 2018-05-08 23:28:15 +00:00
gepcost.ll [TTI] Fix getGEPCost() for geps with a single operand. 2017-09-01 19:54:08 +00:00
guards.ll [SimplifyCFG] Regenerate some test cases using update_test_checks.py to prepare for an upcoming commit. NFC 2017-10-31 19:03:49 +00:00
hoist-common-code.ll
hoist-dbgvalue-inlined.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
hoist-dbgvalue.ll Remove the obsolete offset parameter from @llvm.dbg.value 2017-07-28 20:21:02 +00:00
hoist-with-range.ll
implied-and-or.ll [ValueTracking] Support icmps fed by 'and' and 'or'. 2017-07-06 20:00:25 +00:00
implied-cond-matching-false-dest.ll
implied-cond-matching-imm.ll
implied-cond-matching.ll
implied-cond.ll
indirectbr.ll
inline-asm-sink.ll Fix some misc. -enable-var-scope violations 2017-11-13 01:47:52 +00:00
invoke.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
invoke_unwind.ll
iterative-simplify.ll
lifetime.ll Add address space mangling to lifetime intrinsics 2017-04-10 20:18:21 +00:00
merge-cleanuppads.ll
merge-cond-stores-2.ll [SimplifyCFG] When merging conditional stores, don't count the store we're merging against the PHINodeFoldingThreshold 2017-11-03 21:08:13 +00:00
merge-cond-stores.ll [NFC] Fixed build, updated tests 2018-08-12 18:32:53 +00:00
multiple-phis.ll [SimplifyCFG] Regenerate some test cases using update_test_checks.py to prepare for an upcoming commit. NFC 2017-10-31 19:03:49 +00:00
no-md-sink.ll [SimplifyCFG] don't sink common insts too soon (PR34603) 2017-12-14 22:05:20 +00:00
no_speculative_loads_with_asan.ll Hardware-assisted AddressSanitizer (llvm part). 2017-12-09 00:21:41 +00:00
no_speculative_loads_with_tsan.ll
noreturn-call.ll
opt-for-fuzzing.ll [SimplifyCFG] Create attribute for fuzzing-specific optimizations. 2018-03-22 17:07:51 +00:00
phi-undef-loadstore.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
pr33605.ll [SimplifyCFG] Defer folding unconditional branches to LateSimplifyCFG if it can destroy canonical loop structure. 2017-07-19 08:53:34 +00:00
pr34131.ll [SimplifyCFG] remove checks for crasher test from r310481 2017-08-09 18:56:26 +00:00
pr35774.ll [SimplifyCFG] Stop hoisting musttail calls incorrectly. 2017-12-31 16:47:16 +00:00
pr39807.ll [DebugInfo] Give inlinable calls DILocs (PR39807) 2018-11-28 17:58:45 +00:00
preserve-branchweights-partial.ll
preserve-branchweights-switch-create.ll
preserve-branchweights.ll [SimplifyCFG] Regenerate preserve-branchweights.ll test. NFC 2018-11-14 15:27:07 +00:00
preserve-llvm-loop-metadata.ll [SimplifyCFG] use pass options and remove the latesimplifycfg pass 2017-10-28 18:43:07 +00:00
preserve-load-metadata-2.ll
preserve-load-metadata-3.ll
preserve-load-metadata.ll
preserve-make-implicit-on-switch-to-br.ll
preserve-store-alignment.ll [SimplifyCFG] Fix for PR34219: Preserve alignment after merging conditional stores. 2017-08-29 20:06:24 +00:00
rangereduce.ll [SimplifyCFG] use pass options and remove the latesimplifycfg pass 2017-10-28 18:43:07 +00:00
remove-debug-2.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
remove-debug.ll [DebugInfo] Create merged locations for instructions other than calls 2018-04-12 20:58:24 +00:00
return-merge.ll
seh-nounwind.ll
select-gep.ll [SimplifyCFG] Regenerate some test cases using update_test_checks.py to prepare for an upcoming commit. NFC 2017-10-31 19:03:49 +00:00
sink-common-code.ll [SimplifyCFG] don't sink common insts too soon (PR34603) 2017-12-14 22:05:20 +00:00
speculate-call.ll [ValueTracking] Teach isSafeToSpeculativelyExecute() about the speculatable attribute 2017-04-28 21:13:09 +00:00
speculate-dbgvalue.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
speculate-math.ll [InstCombine] InstCombine and InstSimplify for minimum and maximum 2018-10-19 19:01:26 +00:00
speculate-store.ll
speculate-vector-ops.ll
speculate-with-offset.ll
statepoint-invoke-unwind.ll
suppress-zero-branch-weights.ll [SimplifyCFG] Fix a test case. 2017-11-09 23:17:52 +00:00
switch-dead-default.ll Revert @llvm.assume with operator bundles (r289755-r289757) 2016-12-19 08:22:17 +00:00
switch-masked-bits.ll
switch-on-const-select.ll Mark @llvm.trap cold 2018-11-14 19:53:41 +00:00
switch-range-to-icmp.ll
switch-simplify-crash.ll
switch-to-br.ll
switch-to-icmp.ll
switch-to-select-multiple-edge-per-block-phi.ll [SimplifyCFG] auto-generate better checks; NFC 2016-11-25 21:12:39 +00:00
switch-to-select-two-case.ll [SimplifyCFG] auto-generate better checks; NFC 2016-11-25 21:12:39 +00:00
switch_create-custom-dl.ll Adding a width of the GEP index to the Data Layout. 2018-02-14 06:58:08 +00:00
switch_create.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
switch_switch_fold.ll
switch_thread.ll
switch_undef.ll Bail out of a SimplifyCFG switch table opt at undef values. 2017-12-05 14:14:00 +00:00
trap-debugloc.ll
trap-no-null-opt-debugloc.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
trapping-load-unreachable.ll llvm: Add support for "-fno-delete-null-pointer-checks" 2018-07-09 22:27:23 +00:00
two-entry-phi-return.ll
unreachable-blocks.ll
unreachable-cleanuppad.ll
volatile-phioper.ll
wineh-unreachable.ll