1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 20:43:44 +02:00
llvm-mirror/include/llvm
Chandler Carruth 354359fdab Fix very poor compile-time in PR19499 due to excessive tree walks in
domtree. When finding a nearest common dominator, if neither A dominates
B nor B dominates A, we immediately resorted to a tree walk. The tree
walk here is *particularly* expensive because we have to build
a (potentially very large) set for one side's dominators and compare it
with the other side's.

If at any point we have DFS info, we don't need to do any of this. We
can just walk up one side's immediate dominators and return the first
one which dominates the other side. Because of the DFS info, the
dominates queries are trivially constant time.

This reduces the optimizers time in the test case on PR19499 by 70%. It
now optimizes in about 30 seconds for me. And there is still more to be
done for this case.

llvm-svn: 207406
2014-04-28 09:34:03 +00:00
..
ADT [C++] Use 'nullptr'. 2014-04-28 04:05:08 +00:00
Analysis [C++] Use 'nullptr'. 2014-04-28 04:05:08 +00:00
AsmParser Move the LLVM IR asm writer header files into the IR directory, as they 2014-01-07 12:34:26 +00:00
Bitcode Update comment in LLVMBitCodes.h to reflect the actual bitcode record 2014-04-18 18:19:18 +00:00
CodeGen Convert more SelectionDAG functions to use ArrayRef. 2014-04-28 05:57:50 +00:00
Config static link polly into tools 2014-03-14 04:04:14 +00:00
DebugInfo [DWARF parser] Turn DILineInfo into a struct. 2014-04-18 21:36:39 +00:00
ExecutionEngine [C++] Use 'nullptr'. 2014-04-24 06:44:33 +00:00
IR Revert r206749 till a final decision about the intrinsics is made. 2014-04-26 09:56:41 +00:00
IRReader Split out the IRReader header and the utility functions it provides into 2013-03-26 02:25:37 +00:00
LineEditor [C++11] Replace OwningPtr with std::unique_ptr in places where it doesn't break the API. 2014-04-21 09:34:48 +00:00
Linker [Layering] Sink Linker.h into a Linker subdirectory to make it 2014-03-06 03:42:23 +00:00
LTO Add an -mattr option to the gold plugin to support subtarget features in LTO 2014-04-25 21:46:51 +00:00
MC Add emitThumbSet to the arm target streamer. 2014-04-27 20:23:58 +00:00
Object [C++] Use 'nullptr'. 2014-04-24 06:44:33 +00:00
Option Add missing include, found by modules build. 2014-04-24 23:29:25 +00:00
ProfileData OnDiskHashTable: Audit types and use offset_type consistently 2014-04-19 00:33:15 +00:00
Support Fix very poor compile-time in PR19499 due to excessive tree walks in 2014-04-28 09:34:03 +00:00
TableGen [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-15 07:20:03 +00:00
Target DAGCombiner: Turn divs of vector splats into vectorized multiplications. 2014-04-26 12:06:28 +00:00
Transforms [C++] Use 'nullptr'. Transforms edition. 2014-04-25 05:29:35 +00:00
CMakeLists.txt The llvm_headers_do_not_build project needs to be excluded from the default build, otherwise it gets built (at least in Visual Studio 2013). 2014-01-28 16:07:10 +00:00
InitializePasses.h Atomics: promote ARM's IR-based atomics pass to CodeGen. 2014-04-17 18:22:47 +00:00
LinkAllIR.h [cleanup] Move the Dominators.h and Verifier.h headers into the IR 2014-01-13 09:26:24 +00:00
LinkAllPasses.h [C++] Use 'nullptr'. 2014-04-24 06:44:33 +00:00
Pass.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
PassAnalysisSupport.h [C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr. 2014-04-14 00:51:57 +00:00
PassManager.h Move the old pass manager infrastructure into a legacy namespace and 2013-11-09 12:26:54 +00:00
PassRegistry.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00
PassSupport.h [C++11] More 'nullptr' conversion or in some cases just using a boolean check instead of comparing to nullptr. 2014-04-09 06:08:46 +00:00