[PATCH] D41949: [RISCV] [WIP] implement li pseudo instruction

Ana Pazos via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 1 10:48:45 PST 2018


apazos added inline comments.


================
Comment at: lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp:601
   case Match_Success:
-    Inst.setLoc(IDLoc);
-    Out.EmitInstruction(Inst, getSTI());
-    return false;
+    return processInstruction(Inst, IDLoc, Out, STI);
   case Match_MissingFeature:
----------------
You changed getSTI() -> STI, was it intentional?


================
Comment at: lib/Target/RISCV/MCTargetDesc/RISCVMCPseudoExpansion.cpp:34
+        *STI);
+  } else if (Hi20) {
+    Out.EmitInstruction(MCInstBuilder(RISCV::LUI).addReg(DestReg).addImm(Hi20),
----------------
extra {}


================
Comment at: lib/Target/RISCV/MCTargetDesc/RISCVMCPseudoExpansion.cpp:38
+  } else {
+    Out.EmitInstruction(MCInstBuilder(RISCV::ADDI)
+                            .addReg(DestReg)
----------------
extra {}


================
Comment at: lib/Target/RISCV/RISCVAsmPrinter.cpp:74
+    const MachineOperand &ImmOp = MI->getOperand(1);
+    emitRISCVLoadImm(DstRegOp.getReg(), ImmOp.getImm(), *OutStreamer,
+                     &getSubtargetInfo());
----------------
can't we return the new instruction from this function and reuse the EmitToStreamer call below.  This way we reduce the places to insert compression calls, when instruction compression at MC level is enabled.


https://reviews.llvm.org/D41949





More information about the llvm-commits mailing list