forked from OSchip/llvm-project
Implement a getTypeSizeInBits method. This helps in transforms that want
to ensure the bit size of a type is identical before proceeding. llvm-svn: 33413
This commit is contained in:
parent
ba66c52037
commit
2239163496
|
@ -221,6 +221,10 @@ public:
|
|||
///
|
||||
uint64_t getTypeSize(const Type *Ty) const;
|
||||
|
||||
/// getTypeSizeInBits - Return the number of bytes necessary to hold the
|
||||
/// specified type.
|
||||
uint64_t getTypeSizeInBits(const Type* Ty) const;
|
||||
|
||||
/// getTypeAlignmentABI - Return the minimum ABI-required alignment for the
|
||||
/// specified type.
|
||||
unsigned char getTypeAlignmentABI(const Type *Ty) const;
|
||||
|
|
|
@ -426,6 +426,16 @@ uint64_t TargetData::getTypeSize(const Type *Ty) const {
|
|||
return Size;
|
||||
}
|
||||
|
||||
uint64_t TargetData::getTypeSizeInBits(const Type *Ty) const {
|
||||
if (Ty->isInteger())
|
||||
return cast<IntegerType>(Ty)->getBitWidth();
|
||||
|
||||
uint64_t Size;
|
||||
unsigned char Align;
|
||||
getTypeInfoABI(Ty, this, Size, Align);
|
||||
return Size * 8;
|
||||
}
|
||||
|
||||
unsigned char TargetData::getTypeAlignmentABI(const Type *Ty) const {
|
||||
uint64_t Size;
|
||||
unsigned char Align;
|
||||
|
|
Loading…
Reference in New Issue