1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
llvm-mirror/test/Transforms/LoopUnswitch
Sanjoy Das ab35eb89e2 [LoopUnswitch] Unswitch on conditions feeding into guards
Summary:
This is a straightforward extension of what LoopUnswitch does to
branches to guards.  That is, we unswitch

```
for (;;) {
  ...
  guard(loop_invariant_cond);
  ...
}
```

into

```
if (loop_invariant_cond) {
  for (;;) {
    ...
    // There is no need to emit guard(true)
    ...
  }
} else {
  for (;;) {
    ...
    guard(false);
    // SimplifyCFG will clean this up by adding an
    // unreachable after the guard(false)
    ...
  }
}
```

Reviewers: majnemer

Subscribers: mcrosier, llvm-commits, mzolotukhin

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

llvm-svn: 273801
2016-06-26 05:10:45 +00:00
..
2006-06-13-SingleEntryPHI.ll
2006-06-27-DeadSwitchCase.ll
2007-05-09-tl.ll
2007-05-09-Unreachable.ll
2007-07-12-ExitDomInfo.ll
2007-07-13-DomInfo.ll
2007-07-18-DomInfo.ll
2007-08-01-Dom.ll
2007-08-01-LCSSA.ll
2007-10-04-DomFrontier.ll
2008-06-02-DomInfo.ll
2008-06-17-DomFrontier.ll
2008-11-03-Invariant.ll
2010-11-18-LCSSA.ll
2011-06-02-CritSwitch.ll
2011-09-26-EHCrash.ll
2011-11-18-SimpleSwitch.ll
2011-11-18-TwoSwitches-Threshold.ll
2011-11-18-TwoSwitches.ll
2012-04-02-IndirectBr.ll
2012-04-30-LoopUnswitch-LPad-Crash.ll
2012-05-20-Phi.ll
2015-06-17-Metadata.ll
2015-09-18-Addrspace.ll
basictest.ll
cleanuppad.ll
cold-loop.ll
copy-metadata.ll
crash.ll
exponential-behavior.ll [LoopUnswitch] Avoid exponential behavior 2016-06-25 01:14:19 +00:00
guards.ll [LoopUnswitch] Unswitch on conditions feeding into guards 2016-06-26 05:10:45 +00:00
infinite-loop.ll
LIV-loop-condtion.ll
msan.ll
preserve-analyses.ll
trivial-unswitch.ll