search for: skipfunct

Displaying 14 results from an estimated 14 matches for "skipfunct".

Did you mean: skipfunc
2020 Jun 07
5
optnone/skipping passes in the new pass manager
...doesn't properly skip passes like the old pass manager. For example, when a function is marked optnone, or when using https://llvm.org/docs/OptBisect.html. Lots of passes (e.g. SROA) will do the following under the legacy pass manager: bool runOnFunction(Function &F) override { if (skipFunction(F)) return false; // do pass } What's the right way to proceed with this? There are 50-100 calls to skipFunction() in legacy passes. This doesn't even account for other types of IR units, like skipModule(Module&). I suppose it's possible to manually go in and add in...
2020 Jun 08
2
optnone/skipping passes in the new pass manager
...nson, Paul <paul.robinson at sony.com> wrote: > When the optnone design was being discussed, Chandler specifically > rejected having the pass manager involved in the decision (which was the > original proposed design). Assuming he still feels the same way now, if > the existing `skipFunction` calls aren’t being executed under the new pass > manager, then each pass that has that call will need to be modified > accordingly (added to the NPM path or moved to some common point). It > would be best if the `skipFunction` calls were handled consistently in all > passes so that...
2020 Jun 08
2
optnone/skipping passes in the new pass manager
...l <paul.robinson at sony.com> > wrote: > > When the optnone design was being discussed, Chandler specifically > rejected having the pass manager involved in the decision (which was the > original proposed design). Assuming he still feels the same way now, if > the existing `skipFunction` calls aren’t being executed under the new pass > manager, then each pass that has that call will need to be modified > accordingly (added to the NPM path or moved to some common point). It > would be best if the `skipFunction` calls were handled consistently in all > passes so that...
2018 Jun 06
2
Porting OptBisect to New Pass Manager
...rting will also need to expend to codegen stage in the future. 2. Do we want optnone support for new pass manager? I see OptBisect for each pass was first introduced by modifying optnone check. However new pass manager does not support it IIUC. We can either follow the legacy structure of skipFunction()/Module(), put skippability check in each single pass for new pass manager. Or since there is no optnone support, we now may also create label on each pass to determine it is skippable or not, and then do the check at pass manager level. 3. No region/basicblock/callgraphscc pass support fo...
2018 Apr 03
0
Opt Bisect layering
...fter every execution of every pass   - have a shared implementation of the main logic you have to do most of the following:   1. instantiate your interfaces for all the IRUnits   2. have pass manager doing the job for you directly   3. extend pass interface with specific helpers for your job (skipFunction) neither of those helps perfect layering... And with new pass manager having no common Pass hierarchy this gets even more clumsy. > I'm happy to discuss/help design this area as well if you'd like :) Yeah, I'm interested to continue this design discussion, although my interes...
2018 May 06
0
Need guidance to work on NEW PASS managers bugs
...d few more static method like getCounterIdForName(std::string &Name) etc. - Use it to decide if this pass is required to be executed or not. - For new passmaager just before executing run() for a pass we can check this counter. - For legacy pass manager we can directly use this debug counter in skipFunction()/skipModule() etc method. - There is already FIXME: added for moving getDescription() from OptBisect class to respective IR units like Loop, Region etc. So that new pass manager can also use those methods. - However to support feature added in this https://reviews.llvm.org/D44464 we may need...
2018 Apr 03
2
Opt Bisect layering
...s > - have a shared implementation of the main logic > > you have to do most of the following: > 1. instantiate your interfaces for all the IRUnits > 2. have pass manager doing the job for you directly > 3. extend pass interface with specific helpers for your job > (skipFunction) > > neither of those helps perfect layering... > And with new pass manager having no common Pass hierarchy this gets even > more clumsy. > Not sure I follow, sorry - when you go to instantiate the pass manager & the catch system - at that point there's a concrete set of...
2018 May 07
1
Need guidance to work on NEW PASS managers bugs
...getCounterIdForName(std::string > &Name) etc. > - Use it to decide if this pass is required to be executed or not. > - For new passmaager just before executing run() for a pass we can check > this counter. > - For legacy pass manager we can directly use this debug counter in > skipFunction()/skipModule() etc method. > - There is already FIXME: added for moving getDescription() from OptBisect > class to respective > IR units like Loop, Region etc. So that new pass manager can also use > those methods. > - However to support feature added in this https://reviews.llv...
2018 May 03
2
Opt Bisect layering
...of the main logic > > you have to do most of the following: >    1. instantiate your interfaces for all the IRUnits >    2. have pass manager doing the job for you directly >    3. extend pass interface with specific helpers for your job > (skipFunction) > > neither of those helps perfect layering... > And with new pass manager having no common Pass hierarchy this > gets even > more clumsy. > > > Not sure I follow, sorry - when you go to instantiate the pass > manager & the...
2018 Apr 23
0
Opt Bisect layering
...d implementation of the main logic >> >> you have to do most of the following: >> 1. instantiate your interfaces for all the IRUnits >> 2. have pass manager doing the job for you directly >> 3. extend pass interface with specific helpers for your job >> (skipFunction) >> >> neither of those helps perfect layering... >> And with new pass manager having no common Pass hierarchy this gets even >> more clumsy. >> > > Not sure I follow, sorry - when you go to instantiate the pass manager & > the catch system - at that po...
2018 May 02
2
Need guidance to work on NEW PASS managers bugs
As a point of clarification, optnone is already being handled by the pass itself in the legacy implementation. The skip[IR unit] functions are provided by the pass base classes, and the attribute is checked there. This happens any time the legacy wrapper is run, no matter how it is run. Regarding the opt-bisect design, I’m not particularly fond of the managed static either, but I do want to
2018 Apr 03
2
Opt Bisect layering
On Mon, Apr 2, 2018 at 11:32 PM Fedor Sergeev via llvm-dev < llvm-dev at lists.llvm.org> wrote: > On 03/30/2018 12:05 AM, David Blaikie via llvm-dev wrote: > > & now looking back at the patch-in-progress, I see it allows setting > the OptBisector/OptPassGate as suggested in (2). > Well, the patch currently discussed does not attempt to solve the > passgate object
2017 Sep 22
1
Effectiveness of llvm optimisation passes
I noticed that there is a '-run-pass' argument for llc. I am wondering if I can do a similar approach with machine level optimisations/passes for llc. Are those passes optional (so I can turn them off)? And how can I get MIR format as llc expects with '-run-pass'? Thanks a lot. Cheers, Yi On 22/9/17 15:10, Craig Topper wrote: > Have -O0 on your clang command line causes
2018 May 01
4
Need guidance to work on NEW PASS managers bugs
On Tue, May 1, 2018 at 10:52 PM, Kaylor, Andrew <andrew.kaylor at intel.com> wrote: > Hi Vivek, > > > > Have you read the mailing list threads on this topic? I don’t believe > we’re quite ready to make the switch yet. There was a discussion last > October about what was left to be done. I’m sure it has been discussed > since then too. Here’s a link to the start of