diff options
author | Dan Gohman <gohman@apple.com> | 2008-03-24 16:55:58 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2008-03-24 16:55:58 +0000 |
commit | 52837078c79a42712812c8f2f35a61a93f9921cc (patch) | |
tree | 38f03b52ed39827af8d73afa9270ab117ef4b5fd /include/llvm | |
parent | 4c931fc6e2a901f86ef20d5844bcad3cfd99c781 (diff) | |
download | external_llvm-52837078c79a42712812c8f2f35a61a93f9921cc.zip external_llvm-52837078c79a42712812c8f2f35a61a93f9921cc.tar.gz external_llvm-52837078c79a42712812c8f2f35a61a93f9921cc.tar.bz2 |
Shrink the size of AllocationInst by using its SubclassData
field to store the alignment value instead of haing a
separate field.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48727 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r-- | include/llvm/Instructions.h | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/include/llvm/Instructions.h b/include/llvm/Instructions.h index c80154c..2e234bd 100644 --- a/include/llvm/Instructions.h +++ b/include/llvm/Instructions.h @@ -21,6 +21,7 @@ #include "llvm/InstrTypes.h" #include "llvm/DerivedTypes.h" #include "llvm/ParameterAttributes.h" +#include "llvm/Support/MathExtras.h" namespace llvm { @@ -39,7 +40,6 @@ class APInt; /// AllocaInst. /// class AllocationInst : public UnaryInstruction { - unsigned Alignment; protected: AllocationInst(const Type *Ty, Value *ArraySize, unsigned iTy, unsigned Align, const std::string &Name = "", Instruction *InsertBefore = 0); @@ -74,11 +74,8 @@ public: /// getAlignment - Return the alignment of the memory that is being allocated /// by the instruction. /// - unsigned getAlignment() const { return Alignment; } - void setAlignment(unsigned Align) { - assert((Align & (Align-1)) == 0 && "Alignment is not a power of 2!"); - Alignment = Align; - } + unsigned getAlignment() const { return (1u << SubclassData) >> 1; } + void setAlignment(unsigned Align); virtual Instruction *clone() const = 0; |