llvm-6502/include/llvm
Chandler Carruth f1a7403e86 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207406 91177308-0d34-0410-b5e6-96231b3b80d8
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
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
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
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
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
InitializePasses.h Atomics: promote ARM's IR-based atomics pass to CodeGen. 2014-04-17 18:22:47 +00:00
LinkAllIR.h
LinkAllPasses.h [C++] Use 'nullptr'. 2014-04-24 06:44:33 +00:00
Pass.h
PassAnalysisSupport.h
PassManager.h
PassRegistry.h
PassSupport.h