Go to file
Michael Zolotukhin aae168f993 [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
clang [ADT] Change iterator_adaptor_base's default template arguments to forward more underlying typedefs 2016-08-09 20:22:55 +00:00
clang-tools-extra clang-rename rename-all: support reading old/newname pairs from a YAML file 2016-08-09 18:20:41 +00:00
compiler-rt [test] Update coverage tests to sync up with r278152 2016-08-09 21:04:22 +00:00
debuginfo-tests New round of fixes for "Always compile debuginfo-tests for the host triple" 2014-10-18 23:47:59 +00:00
libclc Make min follow the OCL 1.0 specs 2016-07-25 22:36:22 +00:00
libcxx Update in-tree Google Benchmark to current ToT. 2016-08-09 18:56:48 +00:00
libcxxabi Depend directly on unwind when not building standalone 2016-08-09 21:28:52 +00:00
libunwind Allow building both shared and static library 2016-08-08 22:55:48 +00:00
lld [ELF] - Removed dead code. NFC. 2016-08-09 10:57:42 +00:00
lldb Adjust LLDB's iOS simulator interface for changes in CoreSimulator 2016-08-09 21:16:58 +00:00
llgo [llgo] add llgo source path to LLVM_GO_PACKAGES 2016-07-27 03:01:00 +00:00
llvm [LoopSimplify] Rebuild LCSSA for the inner loop after separating nested loops. 2016-08-09 22:44:56 +00:00
openmp Fix linking of omp_foreign_thread_team_reuse test on FreeBSD 2016-08-08 18:34:05 +00:00
parallel-libs [StreamExecutor] Add DeviceMemory and kernel arg packing 2016-08-08 16:45:19 +00:00
polly Fix spacing around variable initializations and for-loops. NFC. 2016-08-09 17:49:24 +00:00