[AMDGPU] Fix scheduling info for terminator SALU instructions
authorJay Foad <jay.foad@amd.com>
Fri, 6 Mar 2020 15:35:35 +0000 (15:35 +0000)
committerJay Foad <jay.foad@amd.com>
Mon, 9 Mar 2020 21:39:52 +0000 (21:39 +0000)
Summary:
Instruction variants like S_MOV_B32_term should have the same SchedRW
class as the base instruction, S_MOV_B32. This probably doesn't make any
difference in practice because as terminators, they'll always be
scheduled at the end of a basic block, but it's simply more correct than
giving them all the default SchedRW class of Write32Bit, which implies a
VALU operation.

Reviewers: rampitec, arsenm, nhaehnle

Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D75860

llvm/lib/Target/AMDGPU/SIInstructions.td

index 380b6dd..c1cace2 100644 (file)
@@ -230,6 +230,7 @@ class WrapTerminatorInst<SOP_Pseudo base_inst> : SPseudoInstSI<
   let hasSideEffects = base_inst.hasSideEffects;
   let UseNamedOperandTable = base_inst.UseNamedOperandTable;
   let CodeSize = base_inst.CodeSize;
+  let SchedRW = base_inst.SchedRW;
 }
 
 let WaveSizePredicate = isWave64 in {