Go to file
Chandler Carruth f425292721 [PM] Fix a bug in the new loop PM when handling functions with no loops.
Without any loops, we don't even bother to build the standard analyses
used by loop passes. Without these, we can't run loop analyses or
invalidate them properly. Unfortunately, we did these things in the
wrong order which would allow a loop analysis manager's proxy to be
built but then not have the standard analyses built. When we went to do
the invalidation in the proxy thing would fall apart. In the test case
provided, it would actually crash.

The fix is to carefully check for loops first, and to in fact build the
standard analyses before building the proxy. This allows it to
correctly trigger invalidation for those standard analyses.

An alternative might seem to be  to look at whether there are any loops
when doing invalidation, but this doesn't work when during the loop
pipeline run we delete the last loop. I've even included that as a test
case. It is both simpler and more robust to defer building the proxy
until there are definitely the standard set of analyses and indeed
loops.

This bug was uncovered by enabling GlobalsAA in the pipeline.

llvm-svn: 294728
2017-02-10 08:26:58 +00:00
clang Temporarily revert "For X86-64 linux and PPC64 linux align int128 to 16 bytes." 2017-02-10 04:35:21 +00:00
clang-tools-extra [CMake] Fix pthread handling for out-of-tree builds 2017-02-10 01:59:20 +00:00
compiler-rt Remove strict tid checks from the mac implementation of BlockingMutex 2017-02-09 19:29:11 +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 native_rsqrt builtin function 2017-02-09 18:39:26 +00:00
libcxx Revert "Split exception.cpp and new.cpp implementation into different files for different runtimes." 2017-02-10 07:43:08 +00:00
libcxxabi Fix path to libc++'s python test module 2017-02-09 23:58:54 +00:00
libunwind Revert "[libunwind][CMake] Use libc++ headers when available" 2017-02-09 03:56:47 +00:00
lld [CMake] Fix pthread handling for out-of-tree builds 2017-02-10 01:59:20 +00:00
lldb Make sure we only load the OS plug-in once. 2017-02-09 18:55:41 +00:00
llgo [llgo] Remove support for LLVM attributes 2016-12-06 19:22:04 +00:00
llvm [PM] Fix a bug in the new loop PM when handling functions with no loops. 2017-02-10 08:26:58 +00:00
openmp [libomptarget] Align test code with runtime/ 2017-02-07 06:58:15 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly [BlockGenerator] Use MemoryAccess::getAccessValue to get load instruction 2017-02-09 23:54:23 +00:00