Go to file
Chandler Carruth 6f4ed077d0 [LV] Fix an issue where forming LCSSA in the place that we did would
change the set of uniform instructions in the loop causing an assert
failure.

The problem is that the legalization checking also builds data
structures mapping various facts about the loop body. The immediate
cause was the set of uniform instructions. If these then change when
LCSSA is formed, the data structures would already have been built and
become stale. The included test case triggered an assert in loop
vectorize that was reduced out of the new PM's pipeline.

The solution is to form LCSSA early enough that no information is cached
across the changes made. The only really obvious position is outside of
the main logic to vectorize the loop. This also has the advantage of
removing one case where forming LCSSA could mutate the loop but we
wouldn't track that as a "Changed" state.

If it is significantly advantageous to do some legalization checking
prior to this, we can do a more careful positioning but it seemed best
to just back off to a safe position first.

llvm-svn: 293168
2017-01-26 10:41:09 +00:00
clang Further fixes to test from r293146 2017-01-26 04:34:07 +00:00
clang-tools-extra [clang-tidy] Don't modernize-raw-string-literal if replacement is longer. 2017-01-24 15:18:11 +00:00
compiler-rt builtins: remove an errant ':' 2017-01-26 00:37:55 +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 math: Add logb builtin 2017-01-18 03:14:10 +00:00
libcxx Fix chromium build (libcxx) 2017-01-26 10:40:17 +00:00
libcxxabi Fix chromium build (libcxxabi) 2017-01-26 10:38:03 +00:00
libunwind DWARF: fix -Asserts builds 2017-01-25 02:27:45 +00:00
lld Remove unused #include. 2017-01-26 03:02:30 +00:00
lldb Removed an unneccesary #if now that debugserver-mini links Foundation. 2017-01-26 08:51:32 +00:00
llgo [llgo] Remove support for LLVM attributes 2016-12-06 19:22:04 +00:00
llvm [LV] Fix an issue where forming LCSSA in the place that we did would 2017-01-26 10:41:09 +00:00
openmp [OpenMP] Initial implementation of OpenMP offloading library - libomptarget. 2017-01-25 21:27:24 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly ScopDetectionDiagnostics: Also emit diagnostics in case no debug info is available 2017-01-26 10:30:55 +00:00