diff options
Diffstat (limited to 'llvm/lib/LTO')
| -rw-r--r-- | llvm/lib/LTO/ThinLTOCodeGenerator.cpp | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/lib/LTO/ThinLTOCodeGenerator.cpp b/llvm/lib/LTO/ThinLTOCodeGenerator.cpp index 412475d1c98..b8679767e20 100644 --- a/llvm/lib/LTO/ThinLTOCodeGenerator.cpp +++ b/llvm/lib/LTO/ThinLTOCodeGenerator.cpp @@ -160,7 +160,6 @@ static void optimizeModule(Module &TheModule, TargetMachine &TM) {    // Add optimizations    PMB.populateThinLTOPassManager(PM); -  PM.add(createObjCARCContractPass());    PM.run(TheModule);  } @@ -173,6 +172,12 @@ std::unique_ptr<MemoryBuffer> codegenModule(Module &TheModule,    {      raw_svector_ostream OS(OutputBuffer);      legacy::PassManager PM; + +    // If the bitcode files contain ARC code and were compiled with optimization, +    // the ObjCARCContractPass must be run, so do it unconditionally here. +    PM.add(createObjCARCContractPass()); + +    // Setup the codegen now.      if (TM.addPassesToEmitFile(PM, OS, TargetMachine::CGFT_ObjectFile,                                 /* DisableVerify */ true))        report_fatal_error("Failed to setup codegen");  | 

