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 | abd7fdcb9906325fcba14562bb7cf98836152058 (patch) | |
tree | ff8bb792854b8c42066ba2ed354531402d44238a /llvm/lib | |
parent | 5667f0eefd8e045b374efe0f62e6d1ee91520fbb (diff) | |
download | bcm5719-llvm-abd7fdcb9906325fcba14562bb7cf98836152058.tar.gz bcm5719-llvm-abd7fdcb9906325fcba14562bb7cf98836152058.zip |
Implement findOptimalStorageSize a bit more generally
llvm-svn: 4416
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/TargetMachine.cpp | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/llvm/lib/Target/TargetMachine.cpp b/llvm/lib/Target/TargetMachine.cpp index 2d0d330d8db..f50580332a6 100644 --- a/llvm/lib/Target/TargetMachine.cpp +++ b/llvm/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); } |