From 3cbd56dca11f2ec4d1131152e3b3ae43ded5432e Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Sun, 25 Jun 2023 00:48:26 -0700 Subject: [PATCH] [RISCV] Add missing Read classes to some compressed instructions. Reviewed By: wangpc Differential Revision: https://reviews.llvm.org/D153669 --- llvm/lib/Target/RISCV/RISCVInstrInfoC.td | 6 +-- .../tools/llvm-mca/RISCV/SiFive7/gpr-bypass-c.s | 44 +++++++++++----------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoC.td b/llvm/lib/Target/RISCV/RISCVInstrInfoC.td index a26d791..e3a026f 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoC.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoC.td @@ -509,8 +509,8 @@ def C_J : RVInst16CJ<0b101, 0b01, (outs), (ins simm12_lsb0:$offset), let isBarrier=1; } -def C_BEQZ : Bcz<0b110, "c.beqz", GPRC>, Sched<[WriteJmp]>; -def C_BNEZ : Bcz<0b111, "c.bnez", GPRC>, Sched<[WriteJmp]>; +def C_BEQZ : Bcz<0b110, "c.beqz", GPRC>, Sched<[WriteJmp, ReadJmp]>; +def C_BNEZ : Bcz<0b111, "c.bnez", GPRC>, Sched<[WriteJmp, ReadJmp]>; let hasSideEffects = 0, mayLoad = 0, mayStore = 0 in def C_SLLI : RVInst16CI<0b000, 0b10, (outs GPRNoX0:$rd_wb), @@ -551,7 +551,7 @@ def C_LDSP : CStackLoad<0b011, "c.ldsp", GPRNoX0, uimm9_lsb000>, let hasSideEffects = 0, mayLoad = 0, mayStore = 0 in def C_JR : RVInst16CR<0b1000, 0b10, (outs), (ins GPRNoX0:$rs1), - "c.jr", "$rs1">, Sched<[WriteJmpReg]> { + "c.jr", "$rs1">, Sched<[WriteJmpReg, ReadJalr]> { let isBarrier = 1; let isTerminator = 1; let rs2 = 0; diff --git a/llvm/test/tools/llvm-mca/RISCV/SiFive7/gpr-bypass-c.s b/llvm/test/tools/llvm-mca/RISCV/SiFive7/gpr-bypass-c.s index a40d88d..cc5ea2d 100644 --- a/llvm/test/tools/llvm-mca/RISCV/SiFive7/gpr-bypass-c.s +++ b/llvm/test/tools/llvm-mca/RISCV/SiFive7/gpr-bypass-c.s @@ -25,12 +25,12 @@ bnez a0, 1f # CHECK: Iterations: 1 # CHECK-NEXT: Instructions: 18 -# CHECK-NEXT: Total Cycles: 24 +# CHECK-NEXT: Total Cycles: 20 # CHECK-NEXT: Total uOps: 18 # CHECK: Dispatch Width: 2 -# CHECK-NEXT: uOps Per Cycle: 0.75 -# CHECK-NEXT: IPC: 0.75 +# CHECK-NEXT: uOps Per Cycle: 0.90 +# CHECK-NEXT: IPC: 0.90 # CHECK-NEXT: Block RThroughput: 9.0 # CHECK: Instruction Info: @@ -98,26 +98,26 @@ bnez a0, 1f # CHECK: Timeline view: # CHECK-NEXT: 0123456789 -# CHECK-NEXT: Index 0123456789 0123 +# CHECK-NEXT: Index 0123456789 -# CHECK: [0,0] DeeE . . . . . lui a0, 1 -# CHECK-NEXT: [0,1] .DeeE. . . . . add a0, a0, a0 -# CHECK-NEXT: [0,2] . DeeE . . . . addi a0, a0, 1 -# CHECK-NEXT: [0,3] . DeeE . . . . addw a0, a0, a0 -# CHECK-NEXT: [0,4] . DeeE . . . . addiw a0, a0, 1 -# CHECK-NEXT: [0,5] . DeeE . . . . sub a0, a0, a0 -# CHECK-NEXT: [0,6] . .DeeE. . . . subw a0, a0, a0 -# CHECK-NEXT: [0,7] . . DeeE . . . and a0, a0, a0 -# CHECK-NEXT: [0,8] . . DeeE . . . andi a0, a0, 1 -# CHECK-NEXT: [0,9] . . DeeE . . . or a0, a0, a0 -# CHECK-NEXT: [0,10] . . DeeE . . . xor a0, a0, a0 -# CHECK-NEXT: [0,11] . . .DeeE. . . slli a0, a0, 1 -# CHECK-NEXT: [0,12] . . . DeeE . . srli a0, a0, 1 -# CHECK-NEXT: [0,13] . . . DeeE . . srai a0, a0, 1 -# CHECK-NEXT: [0,14] . . . DeeE . . add a0, a0, a0 -# CHECK-NEXT: [0,15] . . . . DeeE . beqz a0, .Ltmp0 -# CHECK-NEXT: [0,16] . . . . DeeE . add a0, a0, a0 -# CHECK-NEXT: [0,17] . . . . DeeE bnez a0, .Ltmp1 +# CHECK: [0,0] DeeE . . . . lui a0, 1 +# CHECK-NEXT: [0,1] .DeeE. . . . add a0, a0, a0 +# CHECK-NEXT: [0,2] . DeeE . . . addi a0, a0, 1 +# CHECK-NEXT: [0,3] . DeeE . . . addw a0, a0, a0 +# CHECK-NEXT: [0,4] . DeeE . . . addiw a0, a0, 1 +# CHECK-NEXT: [0,5] . DeeE . . . sub a0, a0, a0 +# CHECK-NEXT: [0,6] . .DeeE. . . subw a0, a0, a0 +# CHECK-NEXT: [0,7] . . DeeE . . and a0, a0, a0 +# CHECK-NEXT: [0,8] . . DeeE . . andi a0, a0, 1 +# CHECK-NEXT: [0,9] . . DeeE . . or a0, a0, a0 +# CHECK-NEXT: [0,10] . . DeeE . . xor a0, a0, a0 +# CHECK-NEXT: [0,11] . . .DeeE. . slli a0, a0, 1 +# CHECK-NEXT: [0,12] . . . DeeE . srli a0, a0, 1 +# CHECK-NEXT: [0,13] . . . DeeE . srai a0, a0, 1 +# CHECK-NEXT: [0,14] . . . DeeE . add a0, a0, a0 +# CHECK-NEXT: [0,15] . . . DeeE. beqz a0, .Ltmp0 +# CHECK-NEXT: [0,16] . . . DeeE. add a0, a0, a0 +# CHECK-NEXT: [0,17] . . . .DeeE bnez a0, .Ltmp1 # CHECK: Average Wait times (based on the timeline view): # CHECK-NEXT: [0]: Executions -- 2.7.4