llvm-project/llvm/lib/Transforms
Chandler Carruth 34f0c7fcaf [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.

llvm-svn: 177631
2013-03-21 09:52:18 +00:00
..
Hello Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
IPO Move library call prototype attribute inference to functionattrs 2013-03-21 00:55:59 +00:00
InstCombine Perform factorization as a last resort of unsafe fadd/fsub simplification. 2013-03-14 18:08:26 +00:00
Instrumentation [msan] Add an option to disable poisoning of shadow for undef values. 2013-03-21 09:38:26 +00:00
ObjCARC Fixed a careless mistake. 2013-02-23 00:31:32 +00:00
Scalar [SROA] Prefix names using a custom IRBuilder inserter. 2013-03-21 09:52:18 +00:00
Utils LibCallSimplifier: optimize speed for short-lived instances 2013-03-12 00:08:29 +00:00
Vectorize LoopVectorize: Invert case when we use a vector cmp value to query select cost 2013-03-14 18:54:36 +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
LLVMBuild.txt Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00
Makefile Extracted ObjCARC.cpp into its own library libLLVMObjCARCOpts in preparation for refactoring the ARC Optimizer. 2013-01-28 01:35:51 +00:00