aboutsummaryrefslogtreecommitdiffstats
path: root/tools/opt/opt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/opt/opt.cpp')
-rw-r--r--tools/opt/opt.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp
index ae07610..ea6ed33 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