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 Endian: Get rid of LLVM_IS_HOST_BIG_ENDIAN. 2010-10-22 18:45:12 +00:00
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 Add a new 'hotpatch' attribute. This attribute will insert a two-byte no-op 2010-10-25 15:37:09 +00:00
AutoUpgrade.h Auto-upgrade the magic ".llvm.eh.catch.all.value" global to 2010-09-10 18:51:56 +00:00
BasicBlock.h Merge System into Support. 2010-11-29 18:16:10 +00:00
CallGraphSCCPass.h
CallingConv.h Add ret instruction to PTX backend 2010-09-25 07:46:17 +00:00
CMakeLists.txt
Constant.h Remove apparently unnecessary forward declaration. 2010-09-14 01:18:15 +00:00
Constants.h Prune includes. 2010-09-14 20:49:00 +00:00
DerivedTypes.h Merge System into Support. 2010-11-29 18:16:10 +00:00
Function.h Switch attribute macros to use 'LLVM_' as a prefix. We retain the old names 2010-10-23 08:10:43 +00:00
GlobalAlias.h
GlobalValue.h
GlobalVariable.h GlobalOpt: EvaluateFunction() must not evaluate stores to weak_odr globals. 2010-10-19 16:47:23 +00:00
GVMaterializer.h
InitializePasses.h Stub out a new LiveDebugVariables pass. 2010-11-30 02:17:10 +00:00
InlineAsm.h Mult-alt constraint incremental development step 3. 2010-10-29 23:37:38 +00:00
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 The pshufw instruction came about in MMX2 when SSE was introduced. Don't place 2010-10-04 20:24:01 +00:00
IntrinsicsXCore.td
LinkAllPasses.h Reference RegionPass to stop it being eliminated. 2010-10-25 15:36:50 +00:00
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 After Dan's recent commit this is no longer true. 2010-09-14 20:32:58 +00:00
Module.h Merge System into Support. 2010-11-29 18:16:10 +00:00
OperandTraits.h
Operator.h Avoid warnings about implicit conversions to `bool' in MSVC. This time 2010-09-25 20:27:36 +00:00
Pass.h Add RegionPass support. 2010-10-20 01:54:44 +00:00
PassAnalysisSupport.h
PassManager.h
PassManagers.h Add RegionPass support. 2010-10-20 01:54:44 +00:00
PassRegistry.h Attempt to fix valgrind complaining about (benign) leaks in pass registration by having PassRegistry 2010-10-20 22:22:30 +00:00
PassSupport.h Merge System into Support. 2010-11-29 18:16:10 +00:00
SymbolTableListTraits.h
Type.h Add x86MMX a few more places. 2010-09-15 00:52:23 +00:00
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