[llvm] r275663 - llc: Move pass query/add code into an own function; NFC

Matthias Braun via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 15 19:24:15 PDT 2016


Author: matze
Date: Fri Jul 15 21:24:15 2016
New Revision: 275663

URL: http://llvm.org/viewvc/llvm-project?rev=275663&view=rev
Log:
llc: Move pass query/add code into an own function; NFC

Modified:
    llvm/trunk/tools/llc/llc.cpp

Modified: llvm/trunk/tools/llc/llc.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llc/llc.cpp?rev=275663&r1=275662&r2=275663&view=diff
==============================================================================
--- llvm/trunk/tools/llc/llc.cpp (original)
+++ llvm/trunk/tools/llc/llc.cpp Fri Jul 15 21:24:15 2016
@@ -267,6 +267,31 @@ int main(int argc, char **argv) {
   return 0;
 }
 
+static bool addPass(PassManagerBase &PM, const char *argv0,
+                    StringRef PassName, TargetPassConfig &TPC) {
+  const PassRegistry *PR = PassRegistry::getPassRegistry();
+  const PassInfo *PI = PR->getPassInfo(PassName);
+  if (!PI) {
+    errs() << argv0 << ": run-pass " << PassName << " is not registered.\n";
+    return true;
+  }
+
+  Pass *P;
+  if (PI->getTargetMachineCtor())
+    P = PI->getTargetMachineCtor()(&TPC.getTM<TargetMachine>());
+  else if (PI->getNormalCtor())
+    P = PI->getNormalCtor()();
+  else {
+    errs() << argv0 << ": cannot create pass: " << PI->getPassName() << "\n";
+    return true;
+  }
+  std::string Banner = std::string("After ") + std::string(P->getPassName());
+  PM.add(P);
+  TPC.printAndVerify(Banner);
+
+  return false;
+}
+
 static int compileModule(char **argv, LLVMContext &Context) {
   // Load the module to be compiled...
   SMDiagnostic Err;
@@ -412,33 +437,15 @@ static int compileModule(char **argv, LL
         return 1;
       }
       LLVMTargetMachine &LLVMTM = static_cast<LLVMTargetMachine&>(*Target);
-      TargetPassConfig *TPC = LLVMTM.createPassConfig(PM);
-      PM.add(TPC);
+      TargetPassConfig &TPC = *LLVMTM.createPassConfig(PM);
+      PM.add(&TPC);
       LLVMTM.addMachineModuleInfo(PM);
       LLVMTM.addMachineFunctionAnalysis(PM, MIR.get());
-      TPC->printAndVerify("");
-
-      for (std::string &RunPassName : *RunPassNames) {
-        const PassInfo *PI = PR->getPassInfo(RunPassName);
-        if (!PI) {
-          errs() << argv[0] << ": run-pass " << RunPassName << " is not registered.\n";
-          return 1;
-        }
+      TPC.printAndVerify("");
 
-        Pass *P;
-        if (PI->getTargetMachineCtor())
-          P = PI->getTargetMachineCtor()(Target.get());
-        else if (PI->getNormalCtor())
-          P = PI->getNormalCtor()();
-        else {
-          errs() << argv[0] << ": cannot create pass: "
-                 << PI->getPassName() << "\n";
+      for (const std::string &RunPassName : *RunPassNames) {
+        if (addPass(PM, argv[0], RunPassName, TPC))
           return 1;
-        }
-        std::string Banner
-          = std::string("After ") + std::string(P->getPassName());
-        PM.add(P);
-        TPC->printAndVerify(Banner);
       }
       PM.add(createPrintMIRPass(*OS));
     } else {




More information about the llvm-commits mailing list