search for: functionanalysismanag

Displaying 10 results from an estimated 10 matches for "functionanalysismanag".

2019 Feb 06
2
right way for setting PreserveLCSSA with new pass manager
Hi, mustPreserveAnalysisID(LCSSAID) cannot be used with the new pass manager, so what is the right way for querying it? FunctionAnalysisManager::getCachedResult<LCSSAPass>(F) will not work, since LCSSAPass does not have a result. Moreover, it is not an analysis :) Thanks, Slava -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190206/d0d7467...
2018 Aug 21
2
Function optimization pass
...gt;> auto lift_func = mod->getFunction("go_back"); >> if (not lift_func) { >> llvm::errs() << "Error: cannot get function\n"; >> return 0; >> } >> >> auto pass_builder = llvm::PassBuilder{}; >> auto fa_manager = llvm::FunctionAnalysisManager{}; >> >> pass_builder.registerFunctionAnalyses(fa_manager); >> auto fp_manager = >> pass_builder.buildFunctionSimplificationPipeline(llvm::PassBuilder::OptimizationLevel::O2); >> >> fp_manager.run(*lift_func, fa_manager); >> >> ...print mod... >&...
2018 Aug 20
2
Function optimization pass
...is: mod = ...load module from LLVM IR bitcode file go_back.bc... auto lift_func = mod->getFunction("go_back"); if (not lift_func) {     llvm::errs() << "Error: cannot get function\n";     return 0; } auto pass_builder = llvm::PassBuilder{}; auto fa_manager = llvm::FunctionAnalysisManager{}; pass_builder.registerFunctionAnalyses(fa_manager); auto fp_manager = pass_builder.buildFunctionSimplificationPipeline(llvm::PassBuilder::OptimizationLevel::O2); fp_manager.run(*lift_func, fa_manager); ...print mod... but the program crashes always at fp_manager.run. Strange enough, LLVM&...
2017 Dec 15
2
RFC: Exposing TargetTransformInfo factories from TargetMachine
...use TargetTransformInfo to make architecture specific code generation decisions from the XLA LLVM IR emitter[0]. However, we don't have a great way to do this today -- TargetTransformInfo is wrapped in a TargetIRAnalysis and getting the TargetTransformInfo out of it requires something like: FunctionAnalysisManager DummyFAM; TTI = TIRA.run(F, DummyFAM); return *TTI; which isn't ideal. Given that all in-tree backends have a factory function to directly construct a TargetTransformInfo implementation anyway, what do you think about exposing said factory function from the TargetMachine subclasses dire...
2019 Mar 13
1
RFC: Getting ProfileSummaryInfo and BlockFrequencyInfo from various types of passes under the new pass manager
...; wrote: > >> >> - Add a new proxy ModuleAnalysisManagerLoopProxy for a loop pass >> to be able to get to the ModuleAnalysisManager in one step and >> PSI through it. > This is just an optimization of compile-time, saves one > indirection through FunctionAnalysisManager. > I'm not even sure if it is worth the effort. And definitely not > crucial for the overall idea. > > > This should probably be clarified to something like: > > - Add a new proxy ModuleAnalysisManagerLoopProxy for a loop pass to be > able to get to the Module...
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
2014 Jun 18
2
[LLVMdev] PM: High-level review of the new Pass Manager (so far)
..., which was runOnIRUnit: IRUnit* -> bool. - PassManagers interoperate via adaptors. E.g., ModuleToFunctionPassAdaptor is a module transformation pass that contains a FunctionPassManager (with some set of function passes). - AnalysisManagers interoperate via proxies. E.g., FunctionAnalysisManagerModuleProxy is a module analysis pass that forwards to a FunctionAnalysisManager. - LazyCallGraph and ModuleToPostOrderCGSCCPassAdaptor collude to visit SCCs in post-order, including API for updating the SCC-graph on-the-fly without invalidating the traversal. I think what's do...
2019 Mar 13
2
RFC: Getting ProfileSummaryInfo and BlockFrequencyInfo from various types of passes under the new pass manager
...those through loop passes is a cornerstone to this approach. > > - Add a new proxy ModuleAnalysisManagerLoopProxy for a loop pass to be > able to get to the ModuleAnalysisManager in one step and PSI through it. This is just an optimization of compile-time, saves one indirection through FunctionAnalysisManager. I'm not even sure if it is worth the effort. And definitely not crucial for the overall idea. regards,   Fedor. > > > > > On Mon, Mar 4, 2019 at 2:05 PM Fedor Sergeev <fedor.sergeev at azul.com > <mailto:fedor.sergeev at azul.com>> wrote: > > > >...
2020 Jan 07
2
Let CallGraphSCCPass Use Function-Level Analysis
...k what you are planning to do? Cheers, Johannes On 01/07, Brian Gesiak via llvm-dev wrote: > Hello! The new pass manager provides analysis proxies from one IR unit > type to another. These are specializations of > 'llvm::InnerAnalysisManagerProxy'. For example, > 'llvm::FunctionAnalysisManagerModuleProxy' allows you to access > function analyses from within module passes. > > In your case, it sounds like you'd want to use > 'llvm::FunctionAnalysisManagerCGSCCProxy', which allows you to access > function analyses from within an CGSCC pass. Here's an e...
2019 Mar 04
2
RFC: Getting ProfileSummaryInfo and BlockFrequencyInfo from various types of passes under the new pass manager
On 3/4/19 10:49 PM, Hiroshi Yamauchi wrote: > > > On Mon, Mar 4, 2019 at 10:55 AM Hiroshi Yamauchi <yamauchi at google.com > <mailto:yamauchi at google.com>> wrote: > > > > On Sat, Mar 2, 2019 at 12:58 AM Fedor Sergeev > <fedor.sergeev at azul.com <mailto:fedor.sergeev at azul.com>> wrote: > > > > On 3/2/19 2:38 AM,