}
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)
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