summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2002-10-29 21:47:50 +0000
committerChris Lattner <sabre@nondot.org>2002-10-29 21:47:50 +0000
commitabd7fdcb9906325fcba14562bb7cf98836152058 (patch)
treeff8bb792854b8c42066ba2ed354531402d44238a /llvm/lib
parent5667f0eefd8e045b374efe0f62e6d1ee91520fbb (diff)
downloadbcm5719-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.cpp22
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);
}
OpenPOWER on IntegriCloud