As discussed in
1d1b3c49531b, instruction flags set in the *.td files
are under-approximations. For C_JR, isBranch and isConditionalBranch are
set even though it is used for for returns which are not considered
branches.
This patch proposes to remove those flags from C_JR. More detailed
analysis can be implemented in RISCVMCInstrAnalysis.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D147784
let hasSideEffects = 0, mayLoad = 0, mayStore = 0 in
def C_JR : RVInst16CR<0b1000, 0b10, (outs), (ins GPRNoX0:$rs1),
"c.jr", "$rs1">, Sched<[WriteJmpReg]> {
- let isBranch = 1;
let isBarrier = 1;
let isTerminator = 1;
- let isIndirectBranch = 1;
let rs2 = 0;
}