Displaying 20 results from an estimated 44 matches for "optbisect".
2018 Oct 01
3
OptBisect implementation for new pass manager
...me information (such as the
> target) during pass registration.
The registration logic is for sure baked into the sources :)
And we are completely in control of how we do the PassRegistry.def
registration.
At run-time we have a bunch of objects involved into the registration:
PassBuilder
OptBisect
pass object to be registered
We can make their interaction to be as complex as needed.
Say, it is easy to extend PassInstrumentation interface to cover the
registration time and
have PassBuilder invoke corresponding instrumentations, leading to
OptBisect being able to act upon a pass registra...
2018 Jun 06
2
Porting OptBisect to New Pass Manager
Hi Chandler,
I am now working on a bisecting tool to find mis-optimization on LLVM. I
found OptBisect a very useful option and hope to make it work on the new
pass manager. I have several questions about it.
1. Any plans to apply codegen stage with new pass manager?
IIUC, new pass manager only works for opt stage. However the OptBisect
option tries to accumulate pass counts through opt stage a...
2018 Sep 28
3
OptBisect implementation for new pass manager
.../2018 12:25 AM, Kaylor, Andrew wrote:
> As I said, that’s really outside the scope of the current discussion
> except to say that the relevant question is what component should make
> the decision about whether or not a pass should be run.
A planned way of implementation for new-pm's OptBisect is for
instrumenting object to control the execution.
Whenever instrumentation bases its decisions on information provided by
passes/pass managers,
it still has a final say.
So, whenever we choose opt-in or opt-out, it should happen either in
OptBisect entirely,
or coordinated between passes/pa...
2018 Oct 01
2
OptBisect implementation for new pass manager
...s like our current vocabulary is somewhat imprecise.
I'm not sure that I fully gather which part of pipeline
construction/execution and which
object interaction do you mean when talking about "query hooks" or "run
the pass".
Right now we have the following objects:
- OptBisect, which is pass-instrumentation object
- PassBuilder object that constructs the pipeline
- PassManager object that controls the pass execution
- Pass object, which is being constructed for PassBuilder and then
executed with PassManager
At construction time there are:
Pass, OptBisect...
2018 Oct 01
2
OptBisect implementation for new pass manager
....com>
Cc: Kaylor, Andrew <andrew.kaylor at intel.com>; Philip Pfaffe <philip.pfaffe at gmail.com>; llvm-dev <llvm-dev at lists.llvm.org>; zhizhouy at google.com; David Blaikie <dblaikie at gmail.com>; Chandler Carruth <chandlerc at gmail.com>
Subject: Re: [llvm-dev] OptBisect implementation for new pass manager
Fedor Sergeev <fedor.sergeev at azul.com> writes:
> I don’t have strong feelings about how this happens. Off the cuff,
> it could be added to the pass registration information or it could
> be a function provided by the pass, preferab...
2018 Mar 22
2
Opt Bisect layering
Andrew,
I would not make the caller pass the description of the IR unit. That is
because it would result in the description generated every time even if
OptBisect is disabled. Description generation is not very chip.
Thinking on the OptBisect extension, I believe passing the units are the
right choice because OptPassGates may use them to make pass skipping
decisions.
-Yevgeny Rouban
-----------------------------------------------------------
*From:* llvm-d...
2018 Mar 29
0
Opt Bisect layering
So... looking at OptBisect, I have a few thoughts:
1) what's the purpose of the virtual interface/OptPassGate? I'm guessing
maybe that worked around the circular referencing in these APIs? hmm, no, I
suppose that wouldn't work/be relevant here.
2) Why is OptBisector a ManagedStatic? That seems pretty antithetic...
2018 Sep 26
12
OptBisect implementation for new pass manager
...y implementation is most
likely not a perfect
way forward. Now is a chance to take a fresh look at the overall
approach and perhaps
do better, without the restrictions that legacy pass manager framework
imposed on
the implementation.
Kind of a summary of what we have now:
- There is a single OptBisect object, requested through LLVMContext
(managed as ManagedStatic).
- OptBisect is defined in lib/IR, but does use analyses,
which is a known layering issue
- Pass hierarchy provides skipModule etc helper functions
- Individual passes opt-in to OptBisect activities by manually...
2018 Sep 27
4
OptBisect implementation for new pass manager
...hat were added with no awareness of
> opt-bisect would be automatically included. However, there is a small
> wrinkle to this. I can't defend this as a reasonable design choice, but the
> SelectionDAGISel pass has a sort of hybrid behavior. It can't actually be
> skipped, but it OptBisect says it should be skipped it drops the
> optimization level to OptNone. That's a machine function pass, so it
> doesn't matter so much right now. It's just something to think about.
>
> One of the reasons that we combined the optnone handling and the
> opt-bisect handling...
2018 Sep 26
2
OptBisect implementation for new pass manager
...s a chance to take a fresh look at the overall
> approach and perhaps
> do better, without the restrictions that legacy pass manager
> framework
> imposed on
> the implementation.
>
> Kind of a summary of what we have now:
> - There is a single OptBisect object, requested through LLVMContext
> (managed as ManagedStatic).
>
> - OptBisect is defined in lib/IR, but does use analyses,
> which is a known layering issue
>
> - Pass hierarchy provides skipModule etc helper functions
>
> - Indiv...
2018 Oct 01
4
OptBisect implementation for new pass manager
...code that as an overrideable default, such as by tracking a
>> list of non-skippable passes right there in the implementation.
> I think that's compeletely fine. You're right that neither the pass
> manager nor the pass can make those decisions.
Yes, I believe we can state that OptBisect (and OptBisect only) makes
those decisions.
> The piece I don't yet
> grasp is how we express that a pass is not skippable (or may be run in
> degraded mode) in various contexts. How do we provide the information
> so that pass instrumentation may make the correct decision?
As...
2018 Mar 29
2
Opt Bisect layering
& now looking back at the patch-in-progress, I see it allows setting the
OptBisector/OptPassGate as suggested in (2).
If that becomes the /only/ option (ie: LLVMContext has no default
OptPassGate) then the virtual interface could be kept down in IR (though
it's still a bit questionable to have those Analysis types (Loop, Region,
CallGraphSCC) even declared in IR). Then the i...
2018 Mar 21
2
Opt Bisect layering
So I'm poking around trying to improve the layering of LLVM (using an
internal strict modular build as a motivation/tool to identify issues) &
came across a layering violation in the OptBisect implementation.
This feature is implemented in lib/IR, but includes several headers from
include/llvm/Analysis - which would create a circular dependency if not for
the fact that all the headers it includes are header-only (templates).
Any ideas about how this could/should be fixed? Perhaps these...
2018 Oct 01
2
OptBisect implementation for new pass manager
...#39;m not sure that I fully gather which part of pipeline
> > construction/execution and which
> > object interaction do you mean when talking about "query hooks" or
> > "run the pass".
> >
> > Right now we have the following objects:
> > - OptBisect, which is pass-instrumentation object
> > - PassBuilder object that constructs the pipeline
> > - PassManager object that controls the pass execution
> > - Pass object, which is being constructed for PassBuilder and then
> > executed with PassManager
> >
>...
2018 Apr 03
0
Opt Bisect layering
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 management issue.
It is left for the discretion of passgate object provider.
>
> If that becomes the /only/ option (ie: LLVMContext has no default
OptPassGate) then the vi...
2018 Apr 03
2
Opt Bisect layering
...ah, I'm interested to continue this design discussion, although my
> interests
> are primarily in the area of new pass manager currently.
> I'm going to post a separate RFC on that topic.
>
Sounds good.
Looping back for this thing - would it be reasonable to remove the default
OptBisect from IR, move it into Transform or some other leafier dependency?
Leaving only the basic interface (that can get away with forward
declarations of Region, Loop, etc) in IR? Is that likely to be done in the
patch under review, or shortly after it?
>
> regards,
> Fedor.
>
> On 04/...
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 management issue.
> It is left for the discretion of passgate object provider.
>
> >
> > If that becomes the /only/ option (ie: LLVMContext has no defau...
2018 May 03
2
Opt Bisect layering
...al Analysis,
it definitely will be able to address this layering issue (as a
side-effect :).
I very much hope to be able send something real to the list in less than
a week.
regards,
Fedor.
On 04/24/2018 01:42 AM, David Blaikie wrote:
> Ping on this - any chance we can look at fixing the OptBisect layering
> here/now?
>
> Could we move the implementation into Analysis & require users to set
> it, rather than having it as a default value in IR?
>
> On Tue, Apr 3, 2018 at 9:25 AM David Blaikie <dblaikie at gmail.com
> <mailto:dblaikie at gmail.com>> wrot...
2018 Sep 26
2
OptBisect implementation for new pass manager
...gree that whether or not the new PM becomes default is somewhat
orthogonal but eventually it will and at that point I hope we have a
functioning opt-bisect for codegen.
-David
Fedor Sergeev <fedor.sergeev at azul.com> writes:
> I would really like to separate OptBisect and New-PM-by-default
> discussions! :)
>
> regards,
> Fedor.
>
> On 09/26/2018 09:13 PM, David Greene wrote:
>> I'm concerned about codegen. If Codegen is not yet ready for the new
>> PM, should the new PM really become default? I would at least like to
>&g...
2018 Apr 23
0
Opt Bisect layering
Ping on this - any chance we can look at fixing the OptBisect layering
here/now?
Could we move the implementation into Analysis & require users to set it,
rather than having it as a default value in IR?
On Tue, Apr 3, 2018 at 9:25 AM David Blaikie <dblaikie at gmail.com> wrote:
> On Tue, Apr 3, 2018 at 8:50 AM Fedor Sergeev <fedor.sergeev a...