search for: looppassmanag

Displaying 20 results from an estimated 43 matches for "looppassmanag".

Did you mean: looppassmanager
2006 Nov 07
3
[LLVMdev] PassManager
Hi Vikram, On Nov 7, 2006, at 10:19 AM, Vikram Adve wrote: > Chris and Devang, > > Before you implement the LoopPassManager class, I'd like to discuss > this a little bit. I have a suggestion and a question; we can > discuss this now or later, as you wish: > > 1. The LoopPassManager might become much simpler if the more complex > loop passes are given control over how they iterate over the loops, &...
2006 Nov 07
4
[LLVMdev] PassManager
...current PassManager with new PassManager in one big scoop I'm going to follow these steps: 1) Rename existing Managers using _X suffix. 2) Introduce new PassManager skeleton 3) Add functionality in new Pass Manager 4) Start Using new Pass Manager 5) Remove existing Pass Manager 6) Implement LoopPassManager 7) Update existing Loop transformations to conform LoopPassManager - Devang
2006 Nov 07
0
[LLVMdev] PassManager
...omments were in response to that. --Vikram http://www.cs.uiuc.edu/~vadve http://llvm.cs.uiuc.edu/ On Nov 7, 2006, at 12:34 PM, Devang Patel wrote: > Hi Vikram, > > On Nov 7, 2006, at 10:19 AM, Vikram Adve wrote: > >> Chris and Devang, >> >> Before you implement the LoopPassManager class, I'd like to discuss >> this a little bit. I have a suggestion and a question; we can >> discuss this now or later, as you wish: >> >> 1. The LoopPassManager might become much simpler if the more complex >> loop passes are given control over how they itera...
2006 Nov 07
0
[LLVMdev] PassManager
Chris and Devang, Before you implement the LoopPassManager class, I'd like to discuss this a little bit. I have a suggestion and a question; we can discuss this now or later, as you wish: 1. The LoopPassManager might become much simpler if the more complex loop passes are given control over how they iterate over the loops, rather always rel...
2014 Jan 22
2
[LLVMdev] Why should we have the LoopPass and LoopPassManager? Can we get rid of this complexity?
As came up recently in other threads, loop passes really get in the way. Here are some of the ways: - There is only one Loop analysis pass - IVUsers. It seems unlikely that the loop nest walk is critical to computing this or preserving it. - Almost all of the things we think of as "required" and dependencies are actually *transforms* that canonicalize the form of a loop into particular
2008 May 09
3
[LLVMdev] [PATCH] Split LoopUnroll pass into mechanism and policy
...ove it from the parent. > if (L->getNumBackEdges() == 0) > LPM.deleteLoopFromQueue(L); > > This check probably needs to happen in every unroll pass that use > loopUnroll. > We could move this check into the loopUnroll function, but that > requires > passing in the LoopPassManager (LPM) to loopUnroll as well. Is that > wanted? I don't think it's desirable to require a LoopPassManager object, but I think it would be fine to have an optional LoopPassManager parameter which can be null for this purpose. If a LoopPassManager object is provided and the loop is com...
2006 Nov 07
2
[LLVMdev] PassManager
On Tue, 7 Nov 2006, Vikram Adve wrote: > 1. The LoopPassManager might become much simpler if the more complex > loop passes are given control over how they iterate over the loops, > rather always rely on the manager to enumerate the loops in some > fixed order. Then the pass could be responsible for making sure that > it handles issues like loops...
2016 Jun 19
2
Linker failures in debug build - compiler/linker poll?
...enced in libLLVMCore.a outside the .o file that contains the explicit instantiation, while PassManager<Loop> *is* affected, because it is referenced in libLLVMAnalysis.a outside the .o file that contains the explicit instantiation, but that .cpp file including the reference does *not* include LoopPassManager.h where the template instantiation is declared extern. This somehow causes the linker to treat the two cases differently. Thanks, Nicolai _______________________________________________ LLVM Developers mailing list llvm-dev at lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-de...
2008 May 09
0
[LLVMdev] [PATCH] Split LoopUnroll pass into mechanism and policy
...duplicate those few lines. Then I'll just leave it at that. > An assert at the end that checks that if the loop > wasn't completely unrolled that it's still isLCSSAForm would be a > good addition in any case. Good idea. > I don't think it's desirable to require a LoopPassManager object, > but I think it would be fine to have an optional LoopPassManager > parameter which can be null for this purpose. If a LoopPassManager > object is provided and the loop is completely unrolled, the > loop is removed from the LoopPassManager. Sounds fine. > > Lastly, the...
2014 Jan 22
2
[LLVMdev] Why should we have the LoopPass and LoopPassManager? Can we get rid of this complexity?
On Wed, Jan 22, 2014 at 12:33 AM, Andrew Trick <atrick at apple.com> wrote: > > There appear to be two chunks of "functionality" provided by loop passes: > > > > 1) A worklist of loops to process. This is very rarely used: > > 1.1) LoopSimplify and LoopUnswitch add loops to the queue. > > I’m making this up without much thought, but we may benefit
2008 May 09
0
[LLVMdev] [PATCH] Split LoopUnroll pass into mechanism and policy
.../ If we completely unrolled the loop, remove it from the parent. if (L->getNumBackEdges() == 0) LPM.deleteLoopFromQueue(L); This check probably needs to happen in every unroll pass that use loopUnroll. We could move this check into the loopUnroll function, but that requires passing in the LoopPassManager (LPM) to loopUnroll as well. Is that wanted? Overall, I've really only moved code, so behaviour should be unchanged. The only functional change I think I made, was that the old code checked to see if the terminator instruction of the latch block was a conditional branch first, before looking...
2006 Nov 07
0
[LLVMdev] PassManager
On Nov 7, 2006, at 2:02 PM, Chris Lattner wrote: > On Tue, 7 Nov 2006, Vikram Adve wrote: >> 1. The LoopPassManager might become much simpler if the more complex >> loop passes are given control over how they iterate over the loops, >> rather always rely on the manager to enumerate the loops in some >> fixed order. Then the pass could be responsible for making sure that >> it handles i...
2014 Jan 21
2
[LLVMdev] Loop unrolling opportunity in SPEC's libquantum with profile info
Just to add a few notes... On Tue, Jan 21, 2014 at 1:31 PM, Andrew Trick <atrick at apple.com> wrote: > Chandler suggested a way around the problem. I'll work on that first. > > > It is very difficult to deal with the LoopPassManager. The concept doesn’t > fit with typical loop passes, which may need to rerun function level > analyses, and can affect code outside the current loop. One nice thing > about it is that a pass can push a new loop onto the queue and rerun all > managed loop passes just on that loop. In t...
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
2014 Jan 22
3
[LLVMdev] Why should we have the LoopPass and LoopPassManager? Can we get rid of this complexity?
On Wed, Jan 22, 2014 at 1:01 AM, Andrew Trick <atrick at apple.com> wrote: > On Jan 22, 2014, at 12:44 AM, Chandler Carruth <chandlerc at gmail.com> > wrote: > > > On Wed, Jan 22, 2014 at 12:33 AM, Andrew Trick <atrick at apple.com> wrote: > >> > There appear to be two chunks of "functionality" provided by loop >> passes: >> >
2020 Jul 24
2
Regarding the project "Create LoopNestPass"
...don't seem to be meaningful since we're dealing with outer-most `LoopNest`s. Still, an analogy of `addSiblingLoops()` can be implemented as something like `addAllLoopNests()`. What's your opinion on that? Currently, `LoopNestToLoopPassAdaptor` is also implemented to allow injecting a `LoopPassManager` into a `LoopNestPassManager`. The reason why I think this is useful is that both `LoopPass` and `LoopNestPass` requires loop canonicalization passes to be run first, and composing both of them and promoting them into a single `FunctionPass` can reduce unnecessary runs of the canonicalization pha...
2008 May 07
8
[LLVMdev] [PATCH] Split LoopUnroll pass into mechanism and policy
Hello Matthijs, Separating mechanism from policy is a good thing for the LoopUnroll pass. Instead of moving the policy to a subclass though, I think it'd be better to move the mechanism, the unrollLoop function, out to be a standalone utility function, with the LoopInfo object passed in explicitly. FoldBlockIntoPredecessor would also be good to make into a standalone utility function, since
2016 Jan 19
3
CFG SCCs vs Loops and loop breaking transformations
...ical and then lower later. 3) Introduce a SCC to Loop conversion pass which tries to take non-loop SCCs and make them representable as Loops. We probably don't want to go full out here, but catching the "easy" cases might help a lot in practice. Running this at the start of each LoopPassManager pipeline might be an option. I was slightly surprised to notice we didn't already have this. None of these seem great. Anyone have another idea on how we could approach this? Philip p.s. Thankfully, the code I noticed this in is not performance sensitive so I don't need a near te...
2020 Jul 18
3
Regarding the project "Create LoopNestPass"
...LnJ5ynt0qqlYoSE&s=nDqZ-LcpFAgM1uK4RSlRYDlhQE60FUZmOPjgdW5aTuo&e=> , > you can try to follow along to create a LLVM loop pass in NPM. > > There exist different kinds of passes in the NPM, e.g. ModulePass, > FunctionPass, LoopPass. > One or more loop passes can be added in a LoopPassManager, which then can > be added in FunctionPassManager through createFunctionToLoopPassAdaptor. > Examples can be found in llvm/lib/Passes/PassBuilder.cpp. > There exist passes that best operate as a loop nest, e.g. LoopInterchange. > For those passes, currently can be written as either Fu...
2012 Feb 10
0
[LLVMdev] Loop Metadata?
...branch to the loop > header be a good idea? That's the starting point. The key is how to chose loop identifying instruction (or instructions ?) for the annotation and preserve the annotation through transformations. At some point during optimization, it may be a good idea to hand it over to LoopPassManager. - Devang > I also wonder whether whatever mechanism would work for this purpose > would also work for implementing OpenMP support. > > Thanks again, > Hal > > -- > Hal Finkel > Postdoctoral Appointee > Leadership Computing Facility > Argonne National Laborat...