1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00
llvm-mirror/lib
Michael Zolotukhin 97a2ec64f5 [LoopSimplify] Rebuild LCSSA for the inner loop after separating nested loops.
Summary:
This hopefully fixes PR28825. The problem now was that a value from the
original loop was used in a subloop, which became a sibling after separation.
While a subloop doesn't need an lcssa phi node, a sibling does, and that's
where we broke LCSSA. The most natural way to fix this now is to simply call
formLCSSA on the original loop: it'll do what we've been doing before plus
it'll cover situations described above.

I think we don't need to run formLCSSARecursively here, and we have an assert
to verify this (I've tried testing it on LLVM testsuite + SPECs). I'd be happy
to be corrected here though.

I also changed a run line in the test from '-lcssa -loop-unroll' to
'-lcssa -loop-simplify -indvars', because it exercises LCSSA
preservation to the same extent, but also makes less unrelated
transformation on the CFG, which makes it easier to verify.

Reviewers: chandlerc, sanjoy, silvas

Subscribers: llvm-commits

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

llvm-svn: 278173
2016-08-09 22:44:56 +00:00
..
Analysis [ValueTracking] Improve ValueTracking on left shift with nsw flag 2016-08-09 22:41:35 +00:00
AsmParser LLLexer.cpp: Avoid using BitsToDouble() to preserve SNaN like "double 0x7FF4000000000000". 2016-08-05 11:59:49 +00:00
Bitcode
CodeGen GlobalISel: first translation support for Constants. 2016-08-09 21:28:04 +00:00
DebugInfo CodeView: extract the OMF Directory Header 2016-08-09 00:25:12 +00:00
ExecutionEngine Re-apply r278065 (Weak symbol support in RuntimeDyld) with a fix for ELF. 2016-08-09 19:27:17 +00:00
Fuzzer [libFuzzer] make libFuzzer work with a bit older clang versions 2016-08-06 21:28:56 +00:00
IR Consistently use ModuleAnalysisManager 2016-08-09 00:28:38 +00:00
IRReader
LibDriver
LineEditor
Linker
LTO
MC Re-commit r277988: [mips][ias] Fix all the hacks related to MIPS-specific unary operators (%hi/%lo/%gp_rel/etc.). 2016-08-08 11:50:25 +00:00
Object CodeView: extract the OMF Directory Header 2016-08-09 00:25:12 +00:00
ObjectYAML
Option
Passes Consistently use CGSCCAnalysisManager 2016-08-09 00:28:56 +00:00
ProfileData [PGO] Make needsComdatForCounter() available (NFC) 2016-07-21 20:50:02 +00:00
Support Add unittests to {ARM | AArch64}TargetParser. 2016-07-28 06:11:18 +00:00
TableGen
Target [WebAssembly] Add -emscripten-cxx-exceptions-whitelist option 2016-08-09 22:37:00 +00:00
Transforms [LoopSimplify] Rebuild LCSSA for the inner loop after separating nested loops. 2016-08-09 22:44:56 +00:00
CMakeLists.txt
LLVMBuild.txt