llvm/lib/Transforms
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
..
Hello Since the Hello pass is built as a loadable dynamic library, don't try to convert it to new-style registration yet. 2010-10-07 00:31:16 +00:00
InstCombine Re-commit 141203, but much more conservative. 2011-10-05 20:53:43 +00:00
Instrumentation If simple ownership works then friendship is not required. 2011-09-20 18:48:56 +00:00
IPO Inlining and unrolling heuristics should be aware of free truncs. 2011-10-01 01:39:05 +00:00
Scalar LSR should only reuse phis that match its formula. 2011-10-07 23:46:21 +00:00
Utils Add a natural stack alignment field to TargetData, and prevent InstCombine from 2011-10-10 23:42:08 +00:00
CMakeLists.txt Move library stuff out of the toplevel CMakeLists.txt file. 2011-02-18 22:06:14 +00:00
Makefile Revert r100896 and around - this breaks the only mingw32 buildbot we have. 2010-04-15 19:51:42 +00:00