llvm-project/llvm/test/Transforms/JumpThreading
Juneyoung Lee 9f717d7b94 [JumpThreading] Allow duplicating a basic block into preds when its branch condition is freeze(phi)
This is the last JumpThreading patch for getting the performance numbers shown at
https://reviews.llvm.org/D84940#2184653 .

This patch makes ProcessBlock call ProcessBranchOnPHI when the branch condition
is freeze(phi) as well (originally it calls the function when the condition is
phi only).

Since what ProcessBranchOnPHI does is to duplicate the basic block into
predecessors if profitable, it is still valid when the condition is freeze(phi)
too.

```
    p = phi [a, pred1] [b, pred2]
    p.fr = freeze p
    br p.fr, ...
=>
  pred1:
    p.fr = freeze a
    br p.fr, ...
  pred2:
    p.fr2 = freeze b
    br p.fr2, ...
```

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D85029
2020-08-06 09:51:17 +09: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 [JumpThreading] Fix infinite loop (PR44611) 2020-03-19 12:49:36 -07:00
and-and-cond.ll
and-cond.ll
assume-edge-dom.ll
assume.ll
basic.ll
bb-unreachable-from-entry.ll
branch-debug-info.ll
branch-no-const.ll
callbr-edge-split.ll
codesize-loop.ll [JumpThreading] Half the duplicate threshold at Oz 2020-02-03 08:40:20 +00:00
combine-metadata.ll [JumpThreading] Make test more robust (NFC) 2020-06-20 13:05:42 +02:00
compare.ll
conservative-lvi.ll
crash.ll
ddt-crash.ll
ddt-crash2.ll
ddt-crash3.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
ddt-crash4.ll
degenerate-phi.ll
fold-not-thread.ll
freeze-lvi-edgevaluelocal.ll [JumpThreading] Add a test that threads jumps with frozen branch conditions 2020-07-27 19:04:50 +09:00
freeze.ll [JumpThreading] Update test freeze.ll; NFC 2020-08-04 20:27:54 +09:00
guards.ll
header-succ.ll
implied-cond.ll
indirectbr.ll
induction.ll
is_constant.ll [Intrinsic] Give "is.constant" the "convergent" attribute 2020-03-30 11:47:12 -07:00
landing-pad.ll
loop-phi.ll
lvi-load.ll
lvi-tristate.ll
ne-undef.ll [ValueLattice] Add new state for undef constants. 2020-03-14 17:19:59 +00:00
no-irreducible-loops.ll
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
pr27840.ll
pr33605.ll [llvm] Fix broken cases of 'CHECK[^:]*$' in tests 2020-01-28 09:52:59 -07:00
pr33917.ll
pr36133.ll
pr40992-indirectbr-folding.ll
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 Reapply "[DebugInfo] Prevent explosion of debug intrinsics during jump threading" 2020-02-12 12:39:54 +00:00
removed-use.ll
select-unfold-msan.ll Fix MSan false positive due to select folding. 2020-03-31 15:25:42 -07:00
select.ll [JumpThreading] add a miscompile test based on discussion in D76332; NFC 2020-03-18 16:46:18 -04:00
stale-loop-info-after-unfold-select.ll
static-profile.ll
thread-cmp.ll
thread-loads.ll Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07: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 [JumpThreading] Merge/rename thread-two-bbsN.ll tests; NFC 2020-08-04 17:07:28 +09:00
threadable-edge-cast.ll [JumpThreading] Remove cast's constraint 2020-08-04 19:09:25 +09:00
threading_prof1.ll
threading_prof2.ll
unreachable-loops.ll
update-edge-weight.ll [JumpThreading] Use profile data even with the new pass manager 2019-11-22 08:21:48 -08:00