diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2015-09-08 19:54:32 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2015-09-08 19:54:32 +0000 |
commit | 8ac35cd0310f3e37df8a0e35df446ed97bbb0ab4 (patch) | |
tree | 7df465986d5d1dbe83154efc30446fdaf3a412e6 /llvm/lib/Target | |
parent | 8fb810a1d2beca5f9cb22cf79c0404834fe8607d (diff) | |
download | bcm5719-llvm-8ac35cd0310f3e37df8a0e35df446ed97bbb0ab4.tar.gz bcm5719-llvm-8ac35cd0310f3e37df8a0e35df446ed97bbb0ab4.zip |
AMDGPU: Mark s_barrier as a high latency instruction
These were marked as WriteSALU, which is low latency.
I'm guessing at the value to use, but it should probably
be considered the highest latency instruction.
I'm not sure this has any actual effect since hasSideEffects
probably is preventing any moving of these.
llvm-svn: 247060
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r-- | llvm/lib/Target/AMDGPU/SIInstructions.td | 1 | ||||
-rw-r--r-- | llvm/lib/Target/AMDGPU/SISchedule.td | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIInstructions.td b/llvm/lib/Target/AMDGPU/SIInstructions.td index b041c394bd7..c3835411d38 100644 --- a/llvm/lib/Target/AMDGPU/SIInstructions.td +++ b/llvm/lib/Target/AMDGPU/SIInstructions.td @@ -479,6 +479,7 @@ let hasSideEffects = 1 in { def S_BARRIER : SOPP <0x0000000a, (ins), "s_barrier", [(int_AMDGPU_barrier_local)] > { + let SchedRW = [WriteBarrier]; let simm16 = 0; let mayLoad = 1; let mayStore = 1; diff --git a/llvm/lib/Target/AMDGPU/SISchedule.td b/llvm/lib/Target/AMDGPU/SISchedule.td index 9b1f676020b..da7601492f9 100644 --- a/llvm/lib/Target/AMDGPU/SISchedule.td +++ b/llvm/lib/Target/AMDGPU/SISchedule.td @@ -17,6 +17,7 @@ def WriteLDS : SchedWrite; def WriteSALU : SchedWrite; def WriteSMEM : SchedWrite; def WriteVMEM : SchedWrite; +def WriteBarrier : SchedWrite; // Vector ALU instructions def Write32Bit : SchedWrite; @@ -64,6 +65,7 @@ multiclass SICommonWriteRes { def : HWWriteRes<WriteSALU, [HWSALU], 1>; def : HWWriteRes<WriteSMEM, [HWLGKM], 10>; // XXX: Guessed ??? def : HWWriteRes<WriteVMEM, [HWVMEM], 450>; // 300 - 600 + def : HWWriteRes<WriteBarrier, [HWBranch], 500>; // XXX: Guessed ??? def : HWVALUWriteRes<Write32Bit, 1>; def : HWVALUWriteRes<WriteQuarterRate32, 4>; |