search for: loopstandardanalysisresults

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

2018 Jan 26
1
PM: loop pass depending on the "outer" BPI analysis
...oblem. The problem is due to the existing hard dependency of IRCE on BranchProbability analysis. If I understand it right, in a new pass manager there are only two ways for loop analysis to ask for the result of an "outer" (function/module-level) analysis:   - get it from a predefined LoopStandardAnalysisResults set     BPI is not there, so it unsuitable for me right now   - query a cached result via getCachedResult of an outer analysis manager proxy     only works if somebody already scheduled the analysis I followed the cached-result way and that essentially means that for every presence of 'i...
2018 Aug 21
2
Function optimization pass
...mode, the crash hit at the same assertion: /usr/local/include/llvm/IR/PassManager.h:689: typename PassT::Result& llvm::AnalysisManager<IRUnitT, ExtraArgTs>::getResult(IRUnitT&, ExtraArgTs ...) [with PassT = llvm::InnerAnalysisManagerProxy<llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::Function>; IRUnitT = llvm::Function; ExtraArgTs = {}; typename PassT::Result = llvm::InnerAnalysisManagerProxy<llvm::AnalysisManager<llvm::Loop, llvm::LoopStandardAnalysisResults&>, llvm::Function>::Result]: Assertion `AnalysisPasses.count(PassT::ID()) &&...
2020 Jul 24
2
Regarding the project "Create LoopNestPass"
...'s a good point, we can make ScalarEvolution optional for LoopNest. > Currently, the only use case is to check if the loop nest is perfect, which > can provide a more conservative result if ScalarEvolution is not given. > Having said that, ScalarEvolution is one of the analyses in > LoopStandardAnalysisResults, so all LoopPasses already have access to > ScalarEvolution. > LoopNest provides some useful utilities, although it is still not at a > manual phrase. > My personal opinion is all the mechanism of the LoopNest, e.g. LoopNestPassManager, > LPMUpdater, etc, should operates on Loop. Whi...
2020 Jul 18
3
Regarding the project "Create LoopNestPass"
Hi, Thanks for your help! I've checked the sources that you mentioned. Currently, I think that I would need to implement a FunctionToLoopNestPassAdaptor which is essentially the same as the FunctionToLoopPassAdaptor but operates only on LI.getTopLevelLoops(). We might also need a LNPMUpdater (LoopNestPassManagerUpdater) which disallows adding inner-loops back into the pipeline, and
2018 Aug 20
2
Function optimization pass
This question has been submitted to stackoverflow (https://stackoverflow.com/questions/51934964/function-optimization-pass) but someone suggested me that it should be submitted to llvm-dev mailing list instead. I'm sorry for the duplication. I am trying to use PassBulider and FunctionPassManager || to optimize a function in a module, what I have done is: mod = ...load module from LLVM
2019 Mar 13
2
RFC: Getting ProfileSummaryInfo and BlockFrequencyInfo from various types of passes under the new pass manager
...ne interruptions and potential > invalidation/recomputation of BFI between the loop passes. We detect > PGO based on whether PSI has profile summary info. (For the old pass > manager, implement a similar approach by using LazyBlockFrequencyInfo.) There is already an optional analysis in LoopStandardAnalysisResults - MemorySSA. We can do the same for BFI/BPI. And, yes - preserving 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 j...
2020 Jul 15
2
Regarding the project "Create LoopNestPass"
Hi, I'm a college student who is quite new to the community and is interested in contributing to the LLVM project. Although I haven't applied to GSoC, I notice that the project "Create LoopNestPass" seems to be unassigned. So I'm curious whether anyone is currently working on it, and if not, is it possible for me to work on it as a side-project? I've been programming in
2019 Mar 13
1
RFC: Getting ProfileSummaryInfo and BlockFrequencyInfo from various types of passes under the new pass manager
...chedResult<ProfileSummaryAnalysis>(*F.getParent()); >   ... > > > AFAICT, adding ModuleAnalysisManagerLoopProxy seems to be as simple as: > > /// A proxy from a \c ModuleAnalysisManager to a \c Loop. > typedef OuterAnalysisManagerProxy<ModuleAnalysisManager, Loop, > LoopStandardAnalysisResults &> > ModuleAnalysisManagerLoopProxy; It also needs to be added to PassBuilder::crossRegisterProxies... But yes, that appears to be a required action. regards,   Fedor. > > > > regards, >   Fedor. >> >> >> >> >> On Mon, Mar 4, 2019...
2019 Mar 01
4
RFC: Getting ProfileSummaryInfo and BlockFrequencyInfo from various types of passes under the new pass manager
Here's a sketch of the proposed approach for just one pass (but imagine more) https://reviews.llvm.org/D58845 On Fri, Mar 1, 2019 at 12:54 PM Fedor Sergeev via llvm-dev < llvm-dev at lists.llvm.org> wrote: > On 2/28/19 12:47 AM, Hiroshi Yamauchi via llvm-dev wrote: > > Hi all, > > To implement more profile-guided optimizations, we’d like to use > ProfileSummaryInfo
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,