From bb5b3f33594cfa40e9f53bf9a71af359b080a697 Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Mon, 10 Oct 2011 23:42:08 +0000 Subject: 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" 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" option to their target data strings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141599 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/LangRef.html | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'docs') diff --git a/docs/LangRef.html b/docs/LangRef.html index 1392db6e60..a28d92efa1 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -1319,6 +1319,12 @@ target datalayout = "layout specification" the bits with the least significance have the lowest address location. +
Ssize
+
Specifies the natural alignment of the stack in bits. Alignment promotion + of stack variables is limited to the natural stack alignment to avoid + dynamic stack realignment. The stack alignment must be a multiple of + 8-bits, and currently defaults to 128 bits if unspecified.
+
p:size:abi:pref
This specifies the size of a pointer and its abi and preferred alignments. All sizes are in bits. Specifying -- cgit v1.2.3-70-g09d2