llvm-mirror/lib
Kristof Beyls 7bee5ceb02 Mark that SpeculativeExecution preserves Globals Alias Analysis.
A few benchmarks with lots of accesses to global variables in the hot
loops regressed a lot since r266399, which added the
SpeculativeExecution pass to the default pipeline. The problem is that
this pass doesn't mark Globals Alias Analysis as preserved. Globals
Alias Analysis is computed in a module pass, whereas
SpeculativeExecution is a function pass, and a lot of passes dependent
on the Globals Alias Analysis to optimize these benchmarks are also
function passes. As such, the Globals Alias Analysis information cannot
be recomputed between SpeculativeExecution and the following function
passes needing that information.

SpeculativeExecution doesn't invalidate Globals Alias Analysis, so mark
it as such to fix those performance regressions.

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

llvm-svn: 268370
2016-05-03 08:33:26 +00:00
..
Analysis [LoopUnroll] Unroll loops which have exit blocks to EH pads 2016-05-03 03:57:40 +00:00
AsmParser IR: Enable debug info type ODR uniquing for forward decls 2016-04-19 18:00:19 +00:00
Bitcode Clean up to avoid compiler warnings for casting away const qualifiers. 2016-04-27 18:35:02 +00:00
CodeGen [CodeGen] Add some space optimized forms of EmitNode and MorphNodeTo that implicitly indicate the number of result VTs. This shaves about 16K off the X86 matching table taking it down to about 470K. 2016-05-03 05:54:13 +00:00
DebugInfo Change operation_not_supported to not_supported. 2016-05-03 00:53:16 +00:00
ExecutionEngine Thread Expected<...> up from libObject’s getType() for symbols to allow llvm-objdump to produce a good error message. 2016-05-02 20:28:12 +00:00
Fuzzer [libFuzzer] enable detect_leaks=1, add proper docs 2016-04-29 18:49:55 +00:00
IR Revert "[SimplifyCFG] Extend TryToSimplifyUncondBranchFromEmptyBlock for empty block including lifetime intrinsics" 2016-05-02 19:43:22 +00:00
IRReader Remove autoconf support 2016-01-26 21:29:08 +00:00
LibDriver LibDriver: Silently do nothing when provided no inputs. 2016-04-13 19:36:04 +00:00
LineEditor Fix Clang-tidy modernize-deprecated-headers warnings in some files; other minor fixes. 2016-03-28 17:40:08 +00:00
Linker Fix recursive -only-needed. 2016-04-21 14:56:33 +00:00
LTO LTO: Don't bother trying to mangle unnamed globals, as they can't be preserved with MustPreserveSymbols. 2016-04-27 23:48:11 +00:00
MC [MC] Create unique .pdata sections for every .text section 2016-05-02 23:22:18 +00:00
Object [lib/Object] Make this assertion more useful. 2016-05-03 07:30:56 +00:00
ObjectYAML [lanai] Add Lanai backend. 2016-03-28 13:09:54 +00:00
Option Option parser: class for consuming a joined arg in addition to all remaining args 2016-04-15 00:23:30 +00:00
Passes PM: Port Reassociate to the new pass manager 2016-04-26 23:39:29 +00:00
ProfileData Remove redundant return, NFC 2016-05-02 21:33:36 +00:00
Support Move llvm-readobj/StreamWriter to Support. 2016-05-03 00:28:04 +00:00
TableGen [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
Target [AVX512] Fix lowerV4X128VectorShuffle to select correctly input operands . 2016-05-03 08:08:44 +00:00
Transforms Mark that SpeculativeExecution preserves Globals Alias Analysis. 2016-05-03 08:33:26 +00:00
CMakeLists.txt Move ObjectYAML code to a new library. 2016-03-01 19:15:06 +00:00
LLVMBuild.txt Add LLVMBuild for ObjectYAML. 2016-03-01 21:29:33 +00:00