diff options
Diffstat (limited to 'llvm/lib/Target/AMDGPU/SIInstructions.td')
-rw-r--r-- | llvm/lib/Target/AMDGPU/SIInstructions.td | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/SIInstructions.td b/llvm/lib/Target/AMDGPU/SIInstructions.td index 70ad847fc5e..840d6a4d2e6 100644 --- a/llvm/lib/Target/AMDGPU/SIInstructions.td +++ b/llvm/lib/Target/AMDGPU/SIInstructions.td @@ -378,6 +378,31 @@ def SI_CALL : SPseudoInstSI < (outs SReg_64:$dst), (ins SSrc_b64:$src0, unknown:$callee)> { let Size = 4; let isCall = 1; + let UseNamedOperandTable = 1; + let SchedRW = [WriteBranch]; +} + +// Tail call handling pseudo +def SI_TCRETURN_ISEL : SPseudoInstSI<(outs), + (ins SSrc_b64:$src0, i32imm:$fpdiff), + [(AMDGPUtc_return i64:$src0, i32:$fpdiff)]> { + let isCall = 1; + let isTerminator = 1; + let isReturn = 1; + let isBarrier = 1; + let SchedRW = [WriteBranch]; + let usesCustomInserter = 1; +} + +def SI_TCRETURN : SPseudoInstSI < + (outs), + (ins SSrc_b64:$src0, unknown:$callee, i32imm:$fpdiff)> { + let Size = 4; + let isCall = 1; + let isTerminator = 1; + let isReturn = 1; + let isBarrier = 1; + let UseNamedOperandTable = 1; let SchedRW = [WriteBranch]; } |