summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorTom Stellard <thomas.stellard@amd.com>2013-03-04 17:40:28 +0000
committerTom Stellard <thomas.stellard@amd.com>2013-03-04 17:40:28 +0000
commitb2f2f960ce8af01a5676d386de1793737a75e72e (patch)
treeb7acee722580042a26bcd216b3dc05187e0edb32 /llvm/lib/Target
parentc1a5b2eba855fe363f7f7b49cdeedc9d5d219384 (diff)
downloadbcm5719-llvm-b2f2f960ce8af01a5676d386de1793737a75e72e.tar.gz
bcm5719-llvm-b2f2f960ce8af01a5676d386de1793737a75e72e.zip
R600: Clean up datalayout strings so they better match hardware capabilities
llvm-svn: 176439
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/R600/AMDILDevice.cpp20
-rw-r--r--llvm/lib/Target/R600/AMDILSIDevice.cpp15
2 files changed, 23 insertions, 12 deletions
diff --git a/llvm/lib/Target/R600/AMDILDevice.cpp b/llvm/lib/Target/R600/AMDILDevice.cpp
index eec5059de29..db8e01ea404 100644
--- a/llvm/lib/Target/R600/AMDILDevice.cpp
+++ b/llvm/lib/Target/R600/AMDILDevice.cpp
@@ -115,10 +115,18 @@ bool AMDGPUDevice::usesSoftware(AMDGPUDeviceInfo::Caps Mode) const {
std::string
AMDGPUDevice::getDataLayout() const {
- return std::string("e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16"
- "-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f80:32:32"
- "-v16:16:16-v24:32:32-v32:32:32-v48:64:64-v64:64:64"
- "-v96:128:128-v128:128:128-v192:256:256-v256:256:256"
- "-v512:512:512-v1024:1024:1024-v2048:2048:2048"
- "-n8:16:32:64");
+ std::string DataLayout = std::string(
+ "e"
+ "-p:32:32:32"
+ "-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32"
+ "-v16:16:16-v24:32:32-v32:32:32-v48:64:64-v64:64:64-v96:128:128-v128:128:128"
+ "-v192:256:256-v256:256:256-v512:512:512-v1024:1024:1024-v2048:2048:2048"
+ "-n32:64"
+ );
+
+ if (usesHardware(AMDGPUDeviceInfo::DoubleOps)) {
+ DataLayout.append("-f64:64:64");
+ }
+
+ return DataLayout;
}
diff --git a/llvm/lib/Target/R600/AMDILSIDevice.cpp b/llvm/lib/Target/R600/AMDILSIDevice.cpp
index 3096c220670..0d1de3d11eb 100644
--- a/llvm/lib/Target/R600/AMDILSIDevice.cpp
+++ b/llvm/lib/Target/R600/AMDILSIDevice.cpp
@@ -36,10 +36,13 @@ AMDGPUSIDevice::getGeneration() const {
std::string
AMDGPUSIDevice::getDataLayout() const {
- return std::string("e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16"
- "-i32:32:32-i64:64:64-f32:32:32-f64:64:64-f80:32:32"
- "-v16:16:16-v24:32:32-v32:32:32-v48:64:64-v64:64:64"
- "-v96:128:128-v128:128:128-v192:256:256-v256:256:256"
- "-v512:512:512-v1024:1024:1024-v2048:2048:2048"
- "-n8:16:32:64");
+ return std::string(
+ "e"
+ "-p:64:64:64"
+ "-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64"
+ "-v16:16:16-v24:32:32-v32:32:32-v48:64:64-v64:64:64-v96:128:128"
+ "-v128:128:128-v192:256:256-v256:256:256-v512:512:512-v1024:1024:1024"
+ "-v2048:2048:2048"
+ "-n32:64"
+ );
}
OpenPOWER on IntegriCloud