llvm-6502/lib/Transforms/Scalar
Chandler Carruth d647ec5239 [SROA] Prefix names using a custom IRBuilder inserter.
The key part of this is ensuring that name prefixes remain in a Twine
form until we get to a point where we can nuke them under NDEBUG. This
is tricky using the old APIs as they played fast and loose with Twine,
which is prone to serious error. The inserter is much cleaner as it is
actually in the call stack leading to the setName call, and so has
a good opportunity to prepend the prefix.

This matters more than you might imagine because most runs over an
alloca find a single partition, and rewrite 3 or 4 instructions
referring to it. As a consequence doing this lazily and exclusively with
Twine allows the optimizer to delete more of it and shaves another 2% to
3% off of the release build's SROA run time for PR15412. I also think
the APIs are cleaner, and the use of Twine is more reliable, so
I consider it a win-win despite the churn required to reach this state.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177631 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-21 09:52:18 +00:00
..
ADCE.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
BasicBlockPlacement.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
CMakeLists.txt Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
CodeGenPrepare.cpp Bypass Slow Divides 2013-03-04 18:13:57 +00:00
ConstantProp.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
CorrelatedValuePropagation.cpp CVP: If we have a PHI with an incoming select, try to skip the select. 2013-02-24 15:34:43 +00:00
DCE.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
DeadStoreElimination.cpp Change GetPointerBaseWithConstantOffset's DataLayout argument from a 2013-01-31 02:00:45 +00:00
EarlyCSE.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
GlobalMerge.cpp Update global merge pass according to Duncan's advices: 2013-03-19 21:46:49 +00:00
GVN.cpp Change the order of the operands in patchAndReplaceAllUsesWith so 2013-03-12 16:22:56 +00:00
IndVarSimplify.cpp IndVarSimplify: do not recompute an IV value outside of the loop if : 2013-03-19 20:00:22 +00:00
JumpThreading.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
LICM.cpp LICM: Hoist insertvalue/extractvalue out of loops. 2013-01-09 18:12:03 +00:00
LLVMBuild.txt
LoopDeletion.cpp Make method private. Keep coding standard. 2013-03-18 23:31:30 +00:00
LoopIdiomRecognize.cpp PR14904: Segmentation fault running pass 'Recognize loop idioms' 2013-01-10 23:32:01 +00:00
LoopInstSimplify.cpp Remove #includes from the commonly used LoopInfo.h. 2013-02-09 01:04:28 +00:00
LoopRotation.cpp Switch CodeMetrics itself over to use TTI to determine if an instruction 2013-01-21 13:04:33 +00:00
LoopStrengthReduce.cpp Revert "Cleanup some SCEV logic a bit." 2013-03-19 05:10:27 +00:00
LoopUnrollPass.cpp Switch CodeMetrics itself over to use TTI to determine if an instruction 2013-01-21 13:04:33 +00:00
LoopUnswitch.cpp Switch CodeMetrics itself over to use TTI to determine if an instruction 2013-01-21 13:04:33 +00:00
LowerAtomic.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
Makefile
MemCpyOptimizer.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
Reassociate.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
Reg2Mem.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
Scalar.cpp Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
ScalarReplAggregates.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
SCCP.cpp Remove dead code and whitespace. 2013-02-21 21:40:51 +00:00
SimplifyCFGPass.cpp Make SimplifyCFG simply depend upon TargetTransformInfo and pass it 2013-01-07 03:53:25 +00:00
SimplifyLibCalls.cpp simplify-libcalls: Removed unused variable 2013-03-21 02:44:07 +00:00
Sink.cpp Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
SROA.cpp [SROA] Prefix names using a custom IRBuilder inserter. 2013-03-21 09:52:18 +00:00
TailRecursionElimination.cpp Begin fleshing out an interface in TTI for modelling the costs of 2013-01-22 11:26:02 +00:00