llvm-6502/lib/VMCore
Dan Gohman b08ba8824e Fix (at least) quadratic worst-case complexity in DominanceFrontier::splitBlock:
don't visit all blocks in the function, and don't iterate over the split blocks'
predecessor lists for each block visited.

Also, remove the special-case test for the entry block. Splitting the entry
block isn't common enough to make this worthwhile.

This fixes a major compile-time bottleneck which is exposed now that
LoopSimplify isn't being redundantly run both before and after
DominanceFrontier.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109408 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-26 17:55:15 +00:00
..
AsmWriter.cpp Make NamedMDNode not be a subclass of Value, and simplify the interface 2010-07-21 23:38:33 +00:00
Attributes.cpp
AutoUpgrade.cpp undo 80 column trespassing I caused 2010-07-22 10:37:47 +00:00
BasicBlock.cpp Skip debug info when looking for existing EH calls at the 2010-04-02 21:49:27 +00:00
CMakeLists.txt Convert the internal PassRegistrar class into a new, external PassRegistry class. No intended functionality change at this point. 2010-07-20 18:39:06 +00:00
ConstantFold.cpp Constant fold x == undef to undef. 2010-06-28 21:30:07 +00:00
ConstantFold.h
Constants.cpp Fix PR7658, a problem where type refinement can trigger 2010-07-17 06:13:52 +00:00
ConstantsContext.h Fix PR7658, a problem where type refinement can trigger 2010-07-17 06:13:52 +00:00
Core.cpp Expose BasicBlock::moveBefore and moveAfter in C API, patch 2010-07-19 15:31:07 +00:00
DebugLoc.cpp rename NewDebugLoc -> DebugLoc, prune #includes in DebugLoc.h. 2010-04-02 20:21:22 +00:00
Dominators.cpp Fix (at least) quadratic worst-case complexity in DominanceFrontier::splitBlock: 2010-07-26 17:55:15 +00:00
Function.cpp Introduce ImmutableCallSite, useful for contexts where no mutation 2010-04-01 08:21:08 +00:00
Globals.cpp
GVMaterializer.cpp
InlineAsm.cpp Reduce string trashing. 2010-07-25 23:18:32 +00:00
Instruction.cpp Rename removeAllMetadata to clearMetadataHashEntries and simplify 2010-07-20 22:25:04 +00:00
Instructions.cpp eliminate CallInst::ArgOffset 2010-07-16 09:38:02 +00:00
IntrinsicInst.cpp warmup ritual: use high-level argument accessors 2010-06-22 19:46:37 +00:00
IRBuilder.cpp make irbuilder use the new optimized debug info accessors. 2010-03-31 04:09:11 +00:00
LeakDetector.cpp
LeaksContext.h Fix a bunch of namespace polution. 2010-04-15 17:08:50 +00:00
LLVMContext.cpp Add support for remapping metadata kind IDs when reading in a 2010-07-20 21:42:28 +00:00
LLVMContextImpl.cpp Fix a bunch of namespace polution. 2010-04-15 17:08:50 +00:00
LLVMContextImpl.h give LLVMContext an inline asm diagnostic hook member. 2010-04-06 00:44:45 +00:00
Makefile Enable RTTI again. While this works fine for LLVM, it creates an ABI 2010-04-14 05:51:59 +00:00
Metadata.cpp Make NamedMDNode not be a subclass of Value, and simplify the interface 2010-07-21 23:38:33 +00:00
Module.cpp Make NamedMDNode not be a subclass of Value, and simplify the interface 2010-07-21 23:38:33 +00:00
Pass.cpp Move the smarts of AnalysisGroup registration into PassRegistry. 2010-07-21 17:52:45 +00:00
PassManager.cpp Pull out r108755. After offline discussion with Chris, we're going to go a different direction with this. 2010-07-20 16:55:05 +00:00
PassRegistry.cpp Move the smarts of AnalysisGroup registration into PassRegistry. 2010-07-21 17:52:45 +00:00
PrintModulePass.cpp Fix batch of converting RegisterPass<> to INTIALIZE_PASS(). 2010-07-21 22:09:45 +00:00
SymbolTableListTraitsImpl.h
Type.cpp PR7704: A function is not allowed to return a function; make sure to enforce 2010-07-24 22:58:04 +00:00
TypesContext.h tidy up 2010-07-16 21:20:46 +00:00
TypeSymbolTable.cpp Fix -Wcast-qual warnings. 2010-04-19 15:42:05 +00:00
Use.cpp precompute 20 tags 2010-07-19 14:48:15 +00:00
Value.cpp Clarify that if a new value handle is added while dropping value handles 2010-07-24 12:09:22 +00:00
ValueSymbolTable.cpp Make NamedMDNode not be a subclass of Value, and simplify the interface 2010-07-21 23:38:33 +00:00
ValueTypes.cpp Adding a v8i64 512-bit vector type. This will be used to model ARM NEON intrinsics which translate into a pair of vld / vst instructions that can load / store 8 consecutive 64-bit (D) registers. 2010-05-13 23:55:47 +00:00
Verifier.cpp Make NamedMDNode not be a subclass of Value, and simplify the interface 2010-07-21 23:38:33 +00:00