summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
diff options
context:
space:
mode:
authorMarek Olsak <marek.olsak@amd.com>2018-04-10 22:48:23 +0000
committerMarek Olsak <marek.olsak@amd.com>2018-04-10 22:48:23 +0000
commita9a58fa236ab19b5caae32330d31e30ebdf6751f (patch)
tree907bcacd4096bc2131352fe96717b0d2a783929b /llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
parent3dc27f1a6914b1fb7dcbc152dc71ea6092f125a8 (diff)
downloadbcm5719-llvm-a9a58fa236ab19b5caae32330d31e30ebdf6751f.tar.gz
bcm5719-llvm-a9a58fa236ab19b5caae32330d31e30ebdf6751f.zip
AMDGPU: enable 128-bit for local addr space under an option
Author: Samuel Pitoiset ds_read_b128 and ds_write_b128 have been recently enabled under the amdgpu-ds128 option because the performance benefit is unclear. Though, using 128-bit loads/stores for the local address space appears to introduce regressions in tessellation shaders. Not sure what is broken, but as ds_read_b128/ds_write_b128 are not enabled by default, just introduce a global option and enable 128-bit only if requested (until it's fixed/used correctly). v2: - fix regressions in merge-stores.ll and multiple_tails.ll Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105464 llvm-svn: 329764
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h')
-rw-r--r--llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
index e3455d34324..cd080263c5a 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
+++ b/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h
@@ -133,6 +133,7 @@ protected:
bool EnableLoadStoreOpt;
bool EnableUnsafeDSOffsetFolding;
bool EnableSIScheduler;
+ bool EnableDS128;
bool DumpCode;
// Subtarget statically properties set by tablegen
@@ -412,8 +413,8 @@ public:
/// \returns If target supports ds_read/write_b128 and user enables generation
/// of ds_read/write_b128.
- bool useDS128(bool UserEnable) const {
- return CIInsts && UserEnable;
+ bool useDS128() const {
+ return CIInsts && EnableDS128;
}
/// \returns If MUBUF instructions always perform range checking, even for
OpenPOWER on IntegriCloud