diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfo.td b/llvm/lib/Target/RISCV/RISCVInstrInfo.td --- a/llvm/lib/Target/RISCV/RISCVInstrInfo.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfo.td @@ -1279,7 +1279,8 @@ // Define isCodeGenOnly = 0 to support parsing assembly "call" instruction. let isCall = 1, isBarrier = 1, isCodeGenOnly = 0, Size = 8, hasSideEffects = 0, mayStore = 0, mayLoad = 0 in -def PseudoCALLReg : Pseudo<(outs GPR:$rd), (ins call_symbol:$func), []> { +def PseudoCALLReg : Pseudo<(outs GPR:$rd), (ins call_symbol:$func), []>, + Sched<[WriteIALU, WriteJalr, ReadJalr]> { let AsmString = "call\t$rd, $func"; } @@ -1290,7 +1291,8 @@ // Define AsmString to print "call" when compile with -S flag. // Define isCodeGenOnly = 0 to support parsing assembly "call" instruction. let isCall = 1, Defs = [X1], isCodeGenOnly = 0, Size = 8 in -def PseudoCALL : Pseudo<(outs), (ins call_symbol:$func), []> { +def PseudoCALL : Pseudo<(outs), (ins call_symbol:$func), []>, + Sched<[WriteIALU, WriteJalr, ReadJalr]> { let AsmString = "call\t$func"; } @@ -1315,7 +1317,8 @@ // Define AsmString to print "tail" when compile with -S flag. let isCall = 1, isTerminator = 1, isReturn = 1, isBarrier = 1, Uses = [X2], Size = 8, isCodeGenOnly = 0 in -def PseudoTAIL : Pseudo<(outs), (ins call_symbol:$dst), []> { +def PseudoTAIL : Pseudo<(outs), (ins call_symbol:$dst), []>, + Sched<[WriteIALU, WriteJalr, ReadJalr]> { let AsmString = "tail\t$dst"; } @@ -1331,7 +1334,8 @@ let isCall = 0, isBarrier = 1, isBranch = 1, isTerminator = 1, Size = 8, isCodeGenOnly = 0, hasSideEffects = 0, mayStore = 0, mayLoad = 0 in -def PseudoJump : Pseudo<(outs GPR:$rd), (ins pseudo_jump_symbol:$target), []> { +def PseudoJump : Pseudo<(outs GPR:$rd), (ins pseudo_jump_symbol:$target), []>, + Sched<[WriteIALU, WriteJalr, ReadJalr]> { let AsmString = "jump\t$target, $rd"; }