[llvm-dev] On-the-fly passes

Philip Pfaffe via llvm-dev llvm-dev at lists.llvm.org
Tue Mar 26 15:32:18 PDT 2019


What is the behavior that you are not expecting?

Cheers,
Philip

On Tue, Mar 26, 2019 at 9:26 PM David Greene via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> I'm seeing some very unexpected behavior in a ModulePass I've created.
> To support both the legacy and new pass managers, I've abstracted away
> the code to get the passes it depends on:
>
> bool MyPass::runOnModule(Module &M) override {
>   auto DominatorGetter = [this] (Function &F) -> DominatorTree & {
>     return this->getAnalysis<DominatorTreeWrapperPass>(F).getDomTree();
>   };
>
>       auto PostDominatorGetter = [this] (Function &F) -> PostDominatorTree
> & {
>         return this->
>         getAnalysis<PostDominatorTreeWrapperPass>(F).getPostDomTree();
>       };
>
>       auto LoopInfoGetter = [this] (Function &F) -> LoopInfo & {
>         return this->getAnalysis<LoopInfoWrapperPass>(F).getLoopInfo();
>       };
>
>       auto SCEVGetter = [this] (Function &F) -> ScalarEvolution & {
>         return this->getAnalysis<ScalarEvolutionWrapperPass>(F).getSE();
>       };
>
>       auto AssumptionCacheGetter = [this] (Function &F) ->
>         AssumptionCache & {
>         return
>         this->getAnalysis<AssumptionCacheTracker>().getAssumptionCache(F);
>       };
>
>       auto OREGetter = [this] (Function &F) -> OptimizationRemarkEmitter &
> {
>         return this->
>         getAnalysis<OptimizationRemarkEmitterWrapperPass>(F).getORE();
>       };
> }
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190326/95401bce/attachment.html>


More information about the llvm-dev mailing list