diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp index ae076102d5b..ea6ed3370c0 100644 --- a/tools/opt/opt.cpp +++ b/tools/opt/opt.cpp @@ -288,8 +288,10 @@ inline void addPass(PassManager &PM, Pass *P) { } MPM.add(createInstructionCombiningPass()); // Clean up after IPCP & DAE MPM.add(createCFGSimplificationPass()); // Clean up after IPCP & DAE - if (UnitAtATime) + if (UnitAtATime) { MPM.add(createPruneEHPass()); // Remove dead EH info + MPM.add(createAddReadAttrsPass()); // Set readonly/readnone attrs + } if (OptLevel > 1) MPM.add(createFunctionInliningPass()); // Inline small functions if (OptLevel > 2) @@ -360,6 +362,7 @@ void AddStandardCompilePasses(PassManager &PM) { addPass(PM, createCFGSimplificationPass()); // Clean up after IPCP & DAE addPass(PM, createPruneEHPass()); // Remove dead EH info + addPass(PM, createAddReadAttrsPass()); // Set readonly/readnone attrs if (!DisableInline) addPass(PM, createFunctionInliningPass()); // Inline small functions