aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2007-09-07 14:52:14 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2007-09-07 14:52:14 +0000
commit588af2fb99bf255c350fcfc582e475cf4840c606 (patch)
tree811e0d3ca7f2f49004c349f4bc2d147ba859ebe2 /include
parent8806c7b1f5317a9679a5779ffc08c552f2091bce (diff)
downloadexternal_llvm-588af2fb99bf255c350fcfc582e475cf4840c606.zip
external_llvm-588af2fb99bf255c350fcfc582e475cf4840c606.tar.gz
external_llvm-588af2fb99bf255c350fcfc582e475cf4840c606.tar.bz2
Add support for having different alignment for objects on call frames.
The x86-64 ABI states that objects passed on the stack have 8 byte alignment. Implement that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41768 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Target/TargetData.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/include/llvm/Target/TargetData.h b/include/llvm/Target/TargetData.h
index 6003e60..f2e55f1 100644
--- a/include/llvm/Target/TargetData.h
+++ b/include/llvm/Target/TargetData.h
@@ -38,7 +38,8 @@ enum AlignTypeEnum {
INTEGER_ALIGN = 'i', ///< Integer type alignment
VECTOR_ALIGN = 'v', ///< Vector type alignment
FLOAT_ALIGN = 'f', ///< Floating point type alignment
- AGGREGATE_ALIGN = 'a' ///< Aggregate alignment
+ AGGREGATE_ALIGN = 'a', ///< Aggregate alignment
+ STACK_ALIGN = 's' ///< Stack objects alignment
};
/// Target alignment element.
///
@@ -166,6 +167,11 @@ public:
/// specified type.
unsigned char getABITypeAlignment(const Type *Ty) const;
+ /// getCallFrameTypeAlignment - Return the minimum ABI-required alignment
+ /// for the specified type when it is part of a call frame.
+ unsigned char getCallFrameTypeAlignment(const Type *Ty) const;
+
+
/// getPrefTypeAlignment - Return the preferred stack/global alignment for
/// the specified type.
unsigned char getPrefTypeAlignment(const Type *Ty) const;