llvm/lib/Transforms/Utils
Lang Hames bb5b3f3359 Add a natural stack alignment field to TargetData, and prevent InstCombine from
promoting allocas to preferred alignments that exceed the natural
alignment. This avoids some potentially expensive dynamic stack realignments.

The natural stack alignment is set in target data strings via the "S<size>"
option. Size is in bits and must be a multiple of 8. The natural stack alignment
defaults to "unspecified" (represented by a zero value), and the "unspecified"
value does not prevent any alignment promotions. Target maintainers that care
about avoiding promotions should explicitly add the "S<size>" option to their
target data strings.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141599 91177308-0d34-0410-b5e6-96231b3b80d8
2011-10-10 23:42:08 +00:00
..
AddrModeMatcher.cpp land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
BasicBlockUtils.cpp Fix a crashing bug in SplitBlock when it is called on a block with no 2011-08-24 18:07:01 +00:00
BasicInliner.cpp simplify 2010-07-28 15:52:43 +00:00
BreakCriticalEdges.cpp LSR should avoid redundant edge splitting. 2011-10-04 03:50:44 +00:00
BuildLibCalls.cpp land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
CloneFunction.cpp Enhance a couple places where we were doing constant folding of instructions, 2011-10-02 09:12:55 +00:00
CloneModule.cpp Fix llvm::CloneModule to correctly clone globals. Patch per bug report by Simon Moll on llvmdev. 2011-08-15 21:05:06 +00:00
CMakeLists.txt Update CMake build. 2011-08-10 03:51:58 +00:00
CodeExtractor.cpp Use ArrayRef instead of an explicit 'const std::vector &'. 2011-09-20 19:05:04 +00:00
DemoteRegToStack.cpp Change all self assignments X=X to (void)X, so that we can turn on a 2010-12-23 00:58:24 +00:00
InlineFunction.cpp Add inlining for the new EH scheme. 2011-08-14 08:01:36 +00:00
InstructionNamer.cpp Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
LCSSA.cpp There is no need to force DebugLoc on a PHI at this point. 2011-05-16 22:05:03 +00:00
Local.cpp Add a natural stack alignment field to TargetData, and prevent InstCombine from 2011-10-10 23:42:08 +00:00
LoopSimplify.cpp Intelligently split the landing pad block. 2011-08-19 00:09:22 +00:00
LoopUnroll.cpp Comments. Thanks for the spell check Nick! 2011-08-10 18:07:05 +00:00
LowerExpectIntrinsic.cpp land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
LowerInvoke.cpp When inserting new instructions, use getFirstInsertionPt instead of 2011-08-25 01:08:34 +00:00
LowerSwitch.cpp Clean up uses of switch instructions so they are not dependent on the operand ordering. Patch by Stepan Dyatkovskiy. 2011-09-29 20:21:17 +00:00
Makefile make -fno-rtti the default unless a directory builds with REQUIRES_RTTI. 2010-01-24 20:43:08 +00:00
Mem2Reg.cpp Remove outdated references to dominance frontiers. 2011-01-18 03:53:26 +00:00
PromoteMemoryToRegister.cpp Add comments and test for atomic load/store and mem2reg. 2011-08-15 23:55:52 +00:00
SimplifyCFG.cpp Delete trivial landing pads that just continue unwinding the caught 2011-09-05 12:57:57 +00:00
SimplifyIndVar.cpp Stop emitting instructions with the name "tmp" they eat up memory and have to be uniqued, without any benefit. 2011-09-27 20:39:19 +00:00
SimplifyInstructions.cpp Speed up instsimplify by about 10-15% by not bothering to retry 2011-01-03 10:50:04 +00:00
SSAUpdater.cpp land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
UnifyFunctionExitNodes.cpp Remove PHINode::reserveOperandSpace(). Instead, add a parameter to 2011-03-30 11:28:46 +00:00
Utils.cpp Add a new convenience pass for testing InstructionSimplify. Previously 2010-12-20 20:54:37 +00:00
ValueMapper.cpp We need to map DebugLoc. It leads to Fuction * (through subprogram entry node) which should be appropriately mapped. 2011-08-04 20:02:18 +00:00