search for: cgsccupdateresult

Displaying 6 results from an estimated 6 matches for "cgsccupdateresult".

2020 Jan 07
2
Let CallGraphSCCPass Use Function-Level Analysis
Dear all, I would like to use the PostDominatorTree in ArgPromotion. I did not find an example of how to use function level analysis inside CallGraphSCCPass. I tried to follow an example of how to use function-level pass in a module pass, but I hit "llvm_unreachable" in PMDataManager::addLowerLevelRequiredPass. What would be a proper way to make PostDominatorTree available in
2017 Dec 14
2
devirtualization with new-PM pipeline
...pipeline again (which should inline the devirtualized call) . The problem is scanning the initial SCC for indirect calls is not enough since inlining can produce indirect calls (which could then get devirtualized by later passes). One (ugly) fix is to pass the value handles to the inliner through CGSCCUpdateResult and let the inliner augment it as the caller gets indirect calls due to inlining. On Thu, Dec 7, 2017 at 12:20 PM, Fedor Sergeev via llvm-dev < llvm-dev at lists.llvm.org> wrote: > On 12/07/2017 11:09 PM, Fedor Sergeev via llvm-dev wrote: > > Chandler et al, > > > > I h...
2020 Jan 07
2
Let CallGraphSCCPass Use Function-Level Analysis
...c llvm::PassInfoMixin<MyCGSCCPass> { > public: > llvm::PreservedAnalyses run(llvm::LazyCallGraph::SCC &C, > llvm::CGSCCAnalysisManager &AM, > llvm::LazyCallGraph &CG, > llvm::CGSCCUpdateResult &UR) { > llvm::FunctionAnalysisManager &FAM = > AM.getResult<llvm::FunctionAnalysisManagerCGSCCProxy>(C, CG) > .getManager(); > for (llvm::LazyCallGraph::Node &N : C) { > llvm::Function &F = N.getFunction(); > llvm::Pos...
2019 Dec 26
2
[RFC] Coroutines passes in the new pass manager
...k is made, coro-split is run and it adds an indirect call, coro-elide is run and it devirtualizes that call, and then another check is made. From the repeater pass's point of view, nothing has changed. This is something I'd like to tweak in future patches (my thinking is to add a member to CGSCCUpdateResult to allow passes to manually inform the pass manager about devirtualizations, but I'm very open to alternative ideas). But for now, I simply have Clang manually schedule two iterations of the coro-split pass, rather than have it rely on the repeater detecting a devirtualization and automatically...
2017 Dec 07
2
devirtualization with new-PM pipeline
Chandler et al, I have been playing with the new PM pipeline, being particularly interested in how it can handle devirtualization. Now, I discovered what I believe is a "regression" vs old PM on a rather simple one-translation-unit testcase. clang is able to devirtualize it with -O3 and fails to do so with -fexperimental-new-pass-manager added. It looks like a pipeline issue,
2019 Aug 07
2
Status of the New Pass Manager
On 8/7/19 6:20 PM, Hiroshi Yamauchi wrote: > I basically run "clang > -fexperimental-new-pass-manager -print-after-all ..." > > It's conceivable that something is different in our setup or in clang > (from opt)... I'll see if I can reproduce it outside our setup. Does it depend on machine architecture? I generally use x86... regards,   Fedor. > > Thanks.