[llvm] [MacroFusion] Add IsPostRA to indicate whether running in post-ra scheduler (PR #77567)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 10 15:53:38 PST 2024


================
@@ -146,12 +148,9 @@ void MacroFusionPredicatorEmitter::emitFirstPredicate(Record *Predicate,
                  << (Predicate->getValueAsBit("ReturnValue") ? "true" : "false")
                  << ";\n";
   } else if (Predicate->isSubClassOf("OneUsePred")) {
-    OS.indent(2) << "{\n";
-    OS.indent(4) << "Register FirstDest = FirstMI->getOperand(0).getReg();\n";
-    OS.indent(4)
-        << "if (FirstDest.isVirtual() && !MRI.hasOneNonDBGUse(FirstDest))\n";
-    OS.indent(4) << "  return false;\n";
-    OS.indent(2) << "}\n";
+    OS.indent(2) << "if (!IsPostRA && "
----------------
topperc wrote:

I don't understand why this is an improvement over checking isVirtual? Are we even guaranteed that a macro-fused instruction can't have a physical register in the pre-RA scheduler?

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


More information about the llvm-commits mailing list