llvm-project/llvm/test/Transforms/JumpThreading
Nick Desaulniers 237d4ee835 [JumpThreading] merge debug info when merging select+br
Jump threading can replace select then unconditional branch with
conditional branch, but when doing so loses debug info.

This destructive transform is eventually leading to a failed Verifier
run during full LTO builds of the Linux kernel with CFI and KCOV
enabled, as reported in PR39531.

ModuleSanitizerCoveragePass will insert calls to
__sanitizer_cov_trace_pc, and sometimes split critical edges,
using whatever debug info may or may not exist for the branch for
the added libcall. Since we can inline calls to
__sanitizer_cov_trace_pc due to LTO, this can lead to the error
observed in PR39531 when the debug info isn't propagated to
the libcall, because of prior destructive transforms that failed to
retain debug info.

Reviewed By: dblaikie

Differential Revision: https://reviews.llvm.org/D100137
2021-04-12 17:51:21 -07:00
..
2008-11-27-EntryMunge.ll
2010-08-26-and.ll
2011-04-02-SimplifyDeadBlock.ll
2011-04-14-InfLoop.ll
2012-07-19-NoSuccessorIndirectBr.ll
PR33357-lvi-recursion.ll
PR37745.ll
PR44611-across-header-hang.ll
and-and-cond.ll [NFCI][SimplifyCFG] Mark all the SimplifyCFG tests that already don't invalidate DomTree as such 2020-12-17 01:03:49 +03:00
and-cond.ll [NFCI][SimplifyCFG] Mark all the SimplifyCFG tests that already don't invalidate DomTree as such 2020-12-17 01:03:49 +03:00
assume-edge-dom.ll
assume.ll [ValueTracking] Don't assume readonly function will return 2021-01-24 10:40:21 +01:00
basic.ll
bb-unreachable-from-entry.ll
branch-debug-info.ll
branch-debug-info2.ll [JumpThreading] merge debug info when merging select+br 2021-04-12 17:51:21 -07:00
branch-no-const.ll
callbr-edge-split.ll
codesize-loop.ll
combine-metadata.ll
compare.ll
conservative-lvi.ll
constant-fold-status.ll [JumpThreading] Fix an incorrect Modified status 2020-09-14 10:36:13 +02:00
crash.ll
ddt-crash.ll
ddt-crash2.ll OpaquePtr: Bulk update tests to use typed sret 2020-11-20 17:58:26 -05:00
ddt-crash3.ll
ddt-crash4.ll
degenerate-phi.ll
divergent-target-test.ll [JumpThreading][NewPM] Skip when target has divergent CF 2021-01-04 16:08:08 -08:00
fold-not-thread.ll
freeze-lvi-edgevaluelocal.ll [LazyValueInfo] Let getEdgeValueLocal look into freeze instructions 2020-08-11 16:39:34 +09:00
freeze.ll [JumpThreading] Update test freeze.ll; NFC 2020-08-04 20:27:54 +09:00
guards.ll Autogen some tests for ease of update 2021-03-22 11:06:29 -07:00
header-succ.ll
implied-cond.ll
indirectbr.ll
induction.ll
is_constant.ll
landing-pad.ll
loop-phi.ll Revert "[InstSimplify][EarlyCSE] Try to CSE PHI nodes in the same basic block" 2020-08-28 23:43:42 +00:00
lvi-load.ll
lvi-tristate.ll [SimplifyCFG] Teach FoldValueComparisonIntoPredecessors() to preserve DomTree, part 1 2021-01-01 03:25:22 +03:00
ne-undef.ll
no-irreducible-loops.ll [SimplifyCFG] MergeBlockIntoPredecessor() already knows how to preserve DomTree 2020-12-17 01:03:49 +03:00
noalias-scope-decl.ll [JumpThreading] Clone noalias.scope.decl when threading blocks 2021-02-22 18:35:30 +01:00
nonnull-gep-out-of-bounds.ll For non-null pointer checks, do not descend through out-of-bounds GEPs 2021-04-09 14:09:23 +01:00
or-undef.ll
phi-copy-to-pred.ll [JumpThreading] Allow duplicating a basic block into preds when its branch condition is freeze(phi) 2020-08-06 09:51:17 +09:00
phi-eq.ll
phi-known.ll
pr9331.ll
pr15851_hang.ll
pr22086.ll
pr26096.ll [PruneEH] Pin tests to legacy PM 2020-10-29 18:17:55 -07:00
pr27840.ll
pr33605.ll
pr33917.ll
pr36133.ll
pr40992-indirectbr-folding.ll
pr43276.ll [BasicAA] Drop dependency on Loop Info. PR43276 2021-03-17 11:43:44 +07:00
pr46857-callbr.ll [JumpThreading] ProcessBranchOnXOR(): bailout if any pred ends in indirect branch (PR46857) 2020-07-27 15:39:03 +03:00
pre-load.ll [JumpThreading] Let SimplifyPartiallyRedundantLoad look into freeze 2020-07-31 15:28:24 +09:00
range-compare.ll
redundant-dbg-info.ll
removed-use.ll
select-unfold-freeze.ll [JumpThreading] Conditionally freeze its condition when unfolding select 2020-09-10 15:49:40 +09:00
select-unfold-msan.ll
select.ll
stale-loop-info-after-unfold-select.ll
static-profile.ll
thread-cmp.ll
thread-loads.ll [Test] Replace checks with auto-generated checks 2021-03-15 14:32:00 +07:00
thread-prob-1.ll [testing] Add missing REQUIRES: asserts 2020-10-28 06:14:54 -04:00
thread-prob-2.ll [JumpThreading] Call eraseBlock when folding a conditional branch 2020-11-15 22:29:30 -08:00
thread-prob-3.ll [BPI] Improve static heuristics for "cold" paths. 2020-12-23 22:47:36 +07:00
thread-prob-4.ll [JumpThreading] Call eraseBlock when folding a conditional branch 2020-12-03 23:50:17 -08:00
thread-prob-5.ll [JumpThreading] Call eraseBlock when folding a conditional branch 2020-12-03 23:50:17 -08:00
thread-prob-6.ll [JumpThreading] Call eraseBlock when folding a conditional branch 2020-12-03 23:50:17 -08:00
thread-two-bbs-cuda.ll [JumpThreading] Merge/rename thread-two-bbsN.ll tests; NFC 2020-08-04 17:07:28 +09:00
thread-two-bbs-msvc.ll [JumpThreading] Merge/rename thread-two-bbsN.ll tests; NFC 2020-08-04 17:07:28 +09:00
thread-two-bbs-threshold.ll [JumpThreading] Consider freeze as a zero-cost instruction 2020-08-05 14:42:36 +09:00
thread-two-bbs.ll [ConstantFold] allow folding icmp of null and constexpr 2021-03-08 08:53:59 -05:00
threadable-edge-cast.ll [JumpThreading] Remove cast's constraint 2020-08-04 19:09:25 +09:00
threading_prof1.ll Revert "Use uint64_t for branch weights instead of uint32_t" 2020-10-31 00:25:32 -07:00
threading_prof2.ll Revert "Use uint64_t for branch weights instead of uint32_t" 2020-10-31 00:25:32 -07:00
unreachable-loops.ll [JumpThreading][VectorUtils] avoid infinite loop on unreachable IR 2020-12-02 13:39:33 -05:00
update-edge-weight.ll Revert "Use uint64_t for branch weights instead of uint32_t" 2020-10-31 00:25:32 -07:00