diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2013-12-19 05:32:55 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2013-12-19 05:32:55 +0000 |
commit | a98cd6a56e6fea6589cf4f0b1bee584c5b6007b4 (patch) | |
tree | 4f62adf31b76efd8ecf1a439a55115a0027b4bf8 /llvm/lib/Target/R600/AMDGPUTargetMachine.cpp | |
parent | 9ceb4987dafb6a1384edb7dc7c08ac6098e9b539 (diff) | |
download | bcm5719-llvm-a98cd6a56e6fea6589cf4f0b1bee584c5b6007b4.tar.gz bcm5719-llvm-a98cd6a56e6fea6589cf4f0b1bee584c5b6007b4.zip |
R600/SI: Make private pointers be 32-bit.
Different sized address spaces should theoretically work
most of the time now, and since 64-bit add is currently
disabled, using more 32-bit pointers fixes some cases.
llvm-svn: 197659
Diffstat (limited to 'llvm/lib/Target/R600/AMDGPUTargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/R600/AMDGPUTargetMachine.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/llvm/lib/Target/R600/AMDGPUTargetMachine.cpp b/llvm/lib/Target/R600/AMDGPUTargetMachine.cpp index 89c27839abd..a3d95b52109 100644 --- a/llvm/lib/Target/R600/AMDGPUTargetMachine.cpp +++ b/llvm/lib/Target/R600/AMDGPUTargetMachine.cpp @@ -50,13 +50,12 @@ SchedCustomRegistry("r600", "Run R600's custom scheduler", createR600MachineScheduler); static std::string computeDataLayout(const AMDGPUSubtarget &ST) { - std::string Ret = "e"; + std::string Ret = "e-p0:32:32"; - if (!ST.is64bit()) - Ret += "-p:32:32"; - - if (ST.getGeneration() >= AMDGPUSubtarget::SOUTHERN_ISLANDS) - Ret += "-p3:32:32"; + if (ST.is64bit()) { + // 32-bit private, local, and region pointers. 64-bit global and constant. + Ret += "-p1:64:64-p2:64:64-p3:32:32-p4:32:32-p5:64:64"; + } Ret += "-i64:64-v16:16-v24:32-v32:32-v48:64-v96:128-v192:256-v256:256" "-v512:512-v1024:1024-v2048:2048-n32:64"; |