1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
llvm-mirror/lib
Philip Reames a858157e46 [LCSSA] Cache LoopExits to avoid wasted work
When looking at the scribus_1.3 example from https://llvm.org/bugs/show_bug.cgi?id=10584, I noticed that we were spending a large amount of time computing loop exits in LCSSA. This code appears to be written with the assumption that LoopExits are stored in the Loop and thus cheap to query. This is not true, so we should cache the result across the potentially long running loop which tends to visit a small handful of Loops.

On the particular example from 10584, this change drops the time spent in LCSSA computation by about 80%.

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

llvm-svn: 281949
2016-09-19 23:30:23 +00:00
..
Analysis [Loop Vectorizer] Consecutive memory access - fixed and simplified 2016-09-18 13:56:08 +00:00
AsmParser Don't create a SymbolTable in Function when the LLVMContext discards value names (NFC) 2016-09-17 06:00:02 +00:00
Bitcode BitcodeWriter: fix emission of invoke when calling a var-arg function with operand bundles 2016-09-19 21:27:04 +00:00
CodeGen [RegisterBankInfo] Adapt call to std::fill due to use of SmallVector. 2016-09-19 23:18:47 +00:00
DebugInfo [pdb] Write the IPI stream. 2016-09-15 18:22:31 +00:00
Demangle Avoid using alignas and constexpr. 2016-09-06 20:36:24 +00:00
ExecutionEngine [MCJIT] Fix some inconsistent handling of name mangling inside MCJIT. 2016-09-12 17:19:24 +00:00
Fuzzer [libFuzzer] use sleep() instead of std::this_thread::sleep_for to avoid coverage from instrumented libc++ 2016-09-19 20:32:34 +00:00
IR Don't create a SymbolTable in Function when the LLVMContext discards value names (NFC) 2016-09-17 06:00:02 +00:00
IRReader
LibDriver Object: Replace NewArchiveIterator with a simpler NewArchiveMember class. NFCI. 2016-06-29 22:27:42 +00:00
LineEditor
Linker DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
LTO [lib/LTO] Try harder to reduce code duplication. NFCI. 2016-09-17 22:32:42 +00:00
MC Defer asm errors to post-statement failure 2016-09-16 18:30:20 +00:00
Object [IRObjectFile] Turn llvm_unreachable("foo") into something more explicative. 2016-09-16 16:07:19 +00:00
ObjectYAML [macho2yaml] Don't write empty linkedit data 2016-08-17 21:46:04 +00:00
Option Replace "fallthrough" comments with LLVM_FALLTHROUGH 2016-08-17 05:10:15 +00:00
Passes Fix test after renaming -name-anon-functions pass to -name-anon-globals 2016-09-16 17:18:16 +00:00
ProfileData [Coverage] Make sorting criteria for CounterMappingRegions local. 2016-08-31 07:01:17 +00:00
Support Missing includes. 2016-09-14 08:55:18 +00:00
TableGen Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes. 2016-08-23 17:14:32 +00:00
Target [x86] use getSignBit() to simplify code; NFCI 2016-09-19 22:07:27 +00:00
Transforms [LCSSA] Cache LoopExits to avoid wasted work 2016-09-19 23:30:23 +00:00
CMakeLists.txt Try to fix a circular dependency in the modules build. 2016-09-06 20:16:19 +00:00
LLVMBuild.txt Add an c++ itanium demangler to llvm. 2016-09-06 19:16:48 +00:00