diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2007-09-07 14:52:14 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2007-09-07 14:52:14 +0000 |
commit | 588af2fb99bf255c350fcfc582e475cf4840c606 (patch) | |
tree | 811e0d3ca7f2f49004c349f4bc2d147ba859ebe2 /include/llvm/Target/TargetData.h | |
parent | 8806c7b1f5317a9679a5779ffc08c552f2091bce (diff) | |
download | external_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/llvm/Target/TargetData.h')
-rw-r--r-- | include/llvm/Target/TargetData.h | 8 |
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; |