diff options
author | Chris Lattner <sabre@nondot.org> | 2002-10-29 21:47:50 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-10-29 21:47:50 +0000 |
commit | 62eaf7ef60f607112f54580df6d0e8ced4ef9e62 (patch) | |
tree | db03fca53c8dcfa90ba9c1ba89270562fbf73b29 /lib/Target/TargetMachine.cpp | |
parent | 6334205cb5c626d2b35e42dd4c710b857bf0a126 (diff) |
Implement findOptimalStorageSize a bit more generally
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4416 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/TargetMachine.cpp')
-rw-r--r-- | lib/Target/TargetMachine.cpp | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/lib/Target/TargetMachine.cpp b/lib/Target/TargetMachine.cpp index 2d0d330d8d..f50580332a 100644 --- a/lib/Target/TargetMachine.cpp +++ b/lib/Target/TargetMachine.cpp @@ -25,21 +25,13 @@ // space equal to optSizeForSubWordData, and all other primitive data // items use space according to the type. // -unsigned int -TargetMachine::findOptimalStorageSize(const Type* ty) const -{ - switch(ty->getPrimitiveID()) - { - case Type::BoolTyID: - case Type::UByteTyID: - case Type::SByteTyID: - case Type::UShortTyID: - case Type::ShortTyID: - return optSizeForSubWordData; - - default: - return DataLayout.getTypeSize(ty); - } +unsigned TargetMachine::findOptimalStorageSize(const Type *Ty) const { + // Round integral values smaller than SubWordDataSize up to SubWordDataSize + if (Ty->isIntegral() && + Ty->getPrimitiveSize() < DataLayout.getSubWordDataSize()) + return DataLayout.getSubWordDataSize(); + + return DataLayout.getTypeSize(Ty); } |