Index: llvm/lib/Target/AMDGPU/SIInstrInfo.cpp =================================================================== --- llvm/lib/Target/AMDGPU/SIInstrInfo.cpp +++ llvm/lib/Target/AMDGPU/SIInstrInfo.cpp @@ -1771,14 +1771,8 @@ case AMDGPU::S_NOP: return MI.getOperand(0).getImm() + 1; - - // FIXME: Any other pseudo instruction? // SI_RETURN_TO_EPILOG is a fallthrough to code outside of the function. The // hazard, even if one exist, won't really be visible. Should we handle it? - case AMDGPU::SI_MASKED_UNREACHABLE: - case AMDGPU::WAVE_BARRIER: - case AMDGPU::SCHED_BARRIER: - return 0; } } Index: llvm/lib/Target/AMDGPU/SIInstructions.td =================================================================== --- llvm/lib/Target/AMDGPU/SIInstructions.td +++ llvm/lib/Target/AMDGPU/SIInstructions.td @@ -313,6 +313,7 @@ let isConvergent = 1; let FixedSize = 1; let Size = 0; + let isMeta = 1; } def SCHED_BARRIER : SPseudoInstSI<(outs), (ins i32imm:$mask), @@ -325,6 +326,7 @@ let isConvergent = 1; let FixedSize = 1; let Size = 0; + let isMeta = 1; } // SI pseudo instructions. These are used by the CFG structurizer pass @@ -462,6 +464,7 @@ let Size = 0; let hasNoSchedulingInfo = 1; let FixedSize = 1; + let isMeta = 1; } // Used as an isel pseudo to directly emit initialization with an @@ -497,6 +500,9 @@ let hasNoSchedulingInfo = 1; let DisableWQM = 1; let FixedSize = 1; + + // TODO: Should this be true? + let isMeta = 0; } // Return for returning function calls.