[PATCH] D135814: [RISCV] Add basic support for the sifive-7-series short forward branch optimization.

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 12 14:28:41 PDT 2022


reames added inline comments.


================
Comment at: llvm/lib/Target/RISCV/RISCVISelLowering.cpp:9432
     APInt Mask = APInt::getBitsSetFrom(LHS.getValueSizeInBits(), 1);
-    if (isNullConstant(RHS) && ISD::isIntEqualitySetCC(CCVal) &&
-        DAG.MaskedValueIsZero(LHS, Mask)) {
+    if (!Subtarget.hasShortForwardBranchOpt() && isNullConstant(RHS) &&
+        ISD::isIntEqualitySetCC(CCVal) && DAG.MaskedValueIsZero(LHS, Mask)) {
----------------
I think you probably want to make the 0 and -1 arm transforms conditional too right?


================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfo.cpp:1773
+    WorkingMI.getOperand(3).setImm(CC);
+    return TargetInstrInfo::commuteInstructionImpl(MI, /*NewMI*/ false, OpIdx1,
+                                                   OpIdx2);
----------------
Shouldn't MI be WorkingMI here?


================
Comment at: llvm/test/CodeGen/RISCV/short-foward-branch-opt.ll:14
+; NOSFB-LABEL: test1:
+; NOSFB:       # %bb.0:
+; NOSFB-NEXT:    beqz a2, .LBB0_2
----------------
Are you intentionally giving me a punch list?  :)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D135814/new/

https://reviews.llvm.org/D135814



More information about the llvm-commits mailing list