llvm-6502/include/llvm
Ted Kremenek 75627d3d2e Performance optimization on ImmutableMap/ImmutableSet:
- Use a DenseSet instead of a FoldingSet to cache
canonicalized nodes.  This reduces the overhead
of double-hashing.

- Use reference counts in ImutAVLTree to much
more aggressively recover tree nodes that are
no longer usable.  We can generate many
transient nodes while using add() and remove()
on ImmutableSet/ImmutableMaps to generate a final
set/map.

For the clang static analyzer (the main client
of these data structures), this results in
a slight speedup (0.5%) when analyzing sqlite3,
but much more importantly results in a 30-60%
reduction in peak memory usage when the analyzer
is analyzing a given function in a file.  On
average that's about a ** 44% reduction ** in the
memory footprint of the static analyzer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120459 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-30 20:26:45 +00:00
..
ADT Performance optimization on ImmutableMap/ImmutableSet: 2010-11-30 20:26:45 +00:00
Analysis Change the basic block map in LoopInfo from a std::map to a DenseMap. This is a 16% speedup running loops on test-suite + SPEC2000. 2010-11-30 18:51:19 +00:00
Assembly
Bitcode Merge System into Support. 2010-11-29 18:16:10 +00:00
CodeGen Merge System into Support. 2010-11-29 18:16:10 +00:00
CompilerDriver Merge System into Support. 2010-11-29 18:16:10 +00:00
Config
ExecutionEngine Merge System into Support. 2010-11-29 18:16:10 +00:00
MC Merge System into Support. 2010-11-29 18:16:10 +00:00
Object Merge System into Support. 2010-11-29 18:16:10 +00:00
Support Support/PathV2: Update comments. 2010-11-29 23:35:35 +00:00
Target add TLI support indicating that jumps are more expensive than logical operations 2010-11-30 18:12:52 +00:00
Transforms Second attempt at fixing the performance regressions introduced 2010-11-27 08:15:55 +00:00
AbstractTypeUser.h
Argument.h
Attributes.h
AutoUpgrade.h
BasicBlock.h Merge System into Support. 2010-11-29 18:16:10 +00:00
CallGraphSCCPass.h
CallingConv.h
CMakeLists.txt
Constant.h
Constants.h
DerivedTypes.h Merge System into Support. 2010-11-29 18:16:10 +00:00
Function.h
GlobalAlias.h
GlobalValue.h
GlobalVariable.h
GVMaterializer.h
InitializePasses.h Stub out a new LiveDebugVariables pass. 2010-11-30 02:17:10 +00:00
InlineAsm.h
InstrTypes.h
Instruction.def
Instruction.h
Instructions.h fix PR8613 - Copy constructor of SwitchInst does not call SwitchInst::init 2010-11-17 05:41:46 +00:00
IntrinsicInst.h remove the pointless check of MemoryUseIntrinsic from 2010-11-30 02:03:47 +00:00
Intrinsics.h
Intrinsics.td Make @llvm.invariant.start not be readonly, so that it has side-effects. This 2010-11-30 04:13:41 +00:00
IntrinsicsAlpha.td
IntrinsicsARM.td
IntrinsicsCellSPU.td
IntrinsicsPowerPC.td
IntrinsicsX86.td
IntrinsicsXCore.td
LinkAllPasses.h
LinkAllVMCore.h Merge System into Support. 2010-11-29 18:16:10 +00:00
Linker.h
LLVMContext.h now that AsmPrinter::EmitInlineAsm is factored right, we can eliminate the 2010-11-17 08:13:01 +00:00
Metadata.h
Module.h Merge System into Support. 2010-11-29 18:16:10 +00:00
OperandTraits.h
Operator.h
Pass.h
PassAnalysisSupport.h
PassManager.h
PassManagers.h
PassRegistry.h
PassSupport.h Merge System into Support. 2010-11-29 18:16:10 +00:00
SymbolTableListTraits.h
Type.h
TypeSymbolTable.h Merge System into Support. 2010-11-29 18:16:10 +00:00
Use.h
User.h
Value.h Factor out Instruction::isSafeToSpeculativelyExecute's code for 2010-11-11 21:23:25 +00:00
ValueSymbolTable.h Merge System into Support. 2010-11-29 18:16:10 +00:00