[llvm-dev] On-the-fly passes
David Greene via llvm-dev
llvm-dev at lists.llvm.org
Wed Mar 27 09:14:32 PDT 2019
Philip Pfaffe via llvm-dev <llvm-dev at lists.llvm.org> writes:
> What is the behavior that you are not expecting?
Sorry, I hit send too quickly. I posted a later message with all the
details.
-David
> 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
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
More information about the llvm-dev
mailing list