diff options
| author | Marek Olsak <marek.olsak@amd.com> | 2018-04-10 22:48:23 +0000 |
|---|---|---|
| committer | Marek Olsak <marek.olsak@amd.com> | 2018-04-10 22:48:23 +0000 |
| commit | a9a58fa236ab19b5caae32330d31e30ebdf6751f (patch) | |
| tree | 907bcacd4096bc2131352fe96717b0d2a783929b /llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h | |
| parent | 3dc27f1a6914b1fb7dcbc152dc71ea6092f125a8 (diff) | |
| download | bcm5719-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.h | 5 |
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 |

