diff options
| author | Quentin Colombet <qcolombet@apple.com> | 2016-06-10 01:12:06 +0000 | 
|---|---|---|
| committer | Quentin Colombet <qcolombet@apple.com> | 2016-06-10 01:12:06 +0000 | 
| commit | 6a88ba6f3424aa8a6bcd59853317bf6ae49565f9 (patch) | |
| tree | fe6900825b1cb5fbebeffd590e2ee96c2caf45f7 | |
| parent | c83bf82ad8f2075b7972844abadcb87a01b77d8b (diff) | |
| download | bcm5719-llvm-6a88ba6f3424aa8a6bcd59853317bf6ae49565f9.tar.gz bcm5719-llvm-6a88ba6f3424aa8a6bcd59853317bf6ae49565f9.zip  | |
[llc] Do not create the pass config several times for run-pass.
Thanks to Matthias Braun for spotting this.
llvm-svn: 272358
| -rw-r--r-- | llvm/tools/llc/llc.cpp | 13 | 
1 files changed, 7 insertions, 6 deletions
diff --git a/llvm/tools/llc/llc.cpp b/llvm/tools/llc/llc.cpp index 51ce3c0f2bf..6d24204b193 100644 --- a/llvm/tools/llc/llc.cpp +++ b/llvm/tools/llc/llc.cpp @@ -411,18 +411,19 @@ static int compileModule(char **argv, LLVMContext &Context) {          errs() << argv[0] << ": run-pass needs a .mir input.\n";          return 1;        } +      LLVMTargetMachine &LLVMTM = static_cast<LLVMTargetMachine&>(*Target); +      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;          } -        LLVMTargetMachine &LLVMTM = static_cast<LLVMTargetMachine&>(*Target); -        TargetPassConfig *TPC = LLVMTM.createPassConfig(PM); -        PM.add(TPC); -        LLVMTM.addMachineModuleInfo(PM); -        LLVMTM.addMachineFunctionAnalysis(PM, MIR.get()); -        TPC->printAndVerify("");          Pass *P;          if (PI->getTargetMachineCtor())  | 

