[llvm-commits] add EP_OptimizerLast
Kostya Serebryany
kcc at google.com
Fri Mar 23 16:23:13 PDT 2012
done, r153353.
Thanks!
--kcc
On Fri, Mar 23, 2012 at 2:51 PM, Chris Lattner <clattner at apple.com> wrote:
>
> On Mar 23, 2012, at 2:11 PM, Kostya Serebryany wrote:
>
> > Hello,
> >
> > Please review the following patch that adds extension point
> "EP_OptimizerLast" to PassManagerBuilder.
> >
> > Currently, ThreadSanitizer instrumentation pass (which is a
> FunctionPass, not a ModulePass) runs as EP_ScalarOptimizerLate.
> > As the result it instruments functions before inlining, which is wrong.
> > Once this patch is in, I'll change ThreadSanitizer to run at
> EP_OptimizerLast, so that it kicks in after inlining (really last).
>
> This looks fine to me,
>
> -Chris
>
>
> >
> > An alternative to this change would be to make ThreadSanitizer a
> ModulePass (kind of sad).
> >
> > Thanks,
> >
> > --kcc
> >
> > Index: lib/Transforms/IPO/PassManagerBuilder.cpp
> > ===================================================================
> > --- lib/Transforms/IPO/PassManagerBuilder.cpp (revision 153188)
> > +++ lib/Transforms/IPO/PassManagerBuilder.cpp (working copy)
> > @@ -202,6 +202,7 @@
> > if (OptLevel > 1)
> > MPM.add(createConstantMergePass()); // Merge dup global
> constants
> > }
> > + addExtensionsToPM(EP_OptimizerLast, MPM);
> > }
> >
> > void PassManagerBuilder::populateLTOPassManager(PassManagerBase &PM,
> > Index: include/llvm/Transforms/IPO/PassManagerBuilder.h
> > ===================================================================
> > --- include/llvm/Transforms/IPO/PassManagerBuilder.h (revision 153188)
> > +++ include/llvm/Transforms/IPO/PassManagerBuilder.h (working copy)
> > @@ -73,6 +73,10 @@
> > /// cleanup-ish optimizations.
> > EP_ScalarOptimizerLate,
> >
> > + /// EP_OptimizerLast -- This extension point allows adding passes
> that
> > + /// run after everything else.
> > + EP_OptimizerLast,
> > +
> > /// EP_EnabledOnOptLevel0 - This extension point allows adding
> passes that
> > /// should not be disabled by O0 optimization level. The passes
> will be
> > /// inserted after the inlining pass.
> >
> >
> > _______________________________________________
> > llvm-commits mailing list
> > llvm-commits at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20120323/172db858/attachment.html>
More information about the llvm-commits
mailing list