[llvm] [SelectionDAG] Add space-optimized forms of OPC_EmitRegister (PR #73291)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 11 13:16:38 PST 2023


================
@@ -687,14 +687,26 @@ EmitMatcher(const Matcher *N, const unsigned Indent, unsigned CurrentIdx,
   case Matcher::EmitRegister: {
     const EmitRegisterMatcher *Matcher = cast<EmitRegisterMatcher>(N);
     const CodeGenRegister *Reg = Matcher->getReg();
+    MVT::SimpleValueType VT = Matcher->getVT();
     // If the enum value of the register is larger than one byte can handle,
     // use EmitRegister2.
     if (Reg && Reg->EnumValue > 255) {
-      OS << "OPC_EmitRegister2, " << getEnumName(Matcher->getVT()) << ", ";
+      OS << "OPC_EmitRegister2, " << getEnumName(VT) << ", ";
       OS << "TARGET_VAL(" << getQualifiedName(Reg->TheDef) << "),\n";
       return 4;
     } else {
-      OS << "OPC_EmitRegister, " << getEnumName(Matcher->getVT()) << ", ";
+      unsigned OpBytes;
+      switch (VT) {
+      case MVT::i32:
+      case MVT::i64:
+        OpBytes = 1;
+        OS << "OPC_EmitRegisterI" << MVT(VT).getScalarSizeInBits() << ", ";
----------------
topperc wrote:

getSizeInBits

https://github.com/llvm/llvm-project/pull/73291


More information about the llvm-commits mailing list