Displaying 20 results from an estimated 20000 matches similar to: "Calling a script from a script in a lit test"
2018 Sep 27
4
OptBisect implementation for new pass manager
Hi Andrew,
We absolutely need to be able to generate executable programs using
> opt-bisect, so some mechanism for not skipping required passes is needed.
> It might be nice to have a mode where no passes are skipped and the IR/MIR
> is dumped when the bisect limit is reached, but I don't see that as a
> requirement.
>
At this point it makes no sense to worry about the code
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
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 antithetical to
the role of LLVMContext. When/why would a user be bisecting over
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 implementation
2018 Sep 26
12
OptBisect implementation for new pass manager
Greetings!
As the generic Pass Instrumentation framework for new pass manager is
finally *in*,
I'm glad to start the discussion on implementation of -opt-bisect
through that framework.
As it has already been discovered while porting other features (namely,
-time-passes)
blindly copying the currently existing legacy implementation is most
likely not a perfect
way forward. Now is a chance
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 May 07
1
Need guidance to work on NEW PASS managers bugs
Hi Vivek,
can you elaborate why you're looking for a one-size-fits-all solution? What
is the noteworthy benefit over adding a new-pm specific implementation?
Several changes you mention are purely for the benefit of supporting the
legacy PM (which already has a working, tried, and tested solution). E.g.
`getCounterIdForName`, the FIXMEs you mention, and the callbacks. All of
these are
2018 May 06
0
Need guidance to work on NEW PASS managers bugs
Hello all,
After reading OptBisect and DebugCounter related code and playing bit
around it I have following simple design:
- Add a debug counter for opt-bisect. Initilize it against option
-opt-bisect-limit=<limit>.
- DebugCounter is a singleton class so can be accessed by both new and
legacy passmanager.
We may need few more static method like getCounterIdForName(std::string
&Name)
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:
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
2018 Oct 01
4
OptBisect implementation for new pass manager
On 10/01/2018 11:13 PM, David Greene wrote:
> Philip Pfaffe <philip.pfaffe at gmail.com> writes:
>> Sorry, but I strongly oppose to the road you're suggesting here. As I
>> said before the Pass*Manager* is entirely the wrong place to handle
>> OptNone, the absolutely the wrong design. It makes sense for function
>> *only*, and immediately breaks down everywhere
2018 May 02
0
Need guidance to work on NEW PASS managers bugs
Hi Vivek,
bisect and optnone are certainly low hanging fruit in terms of
implementation. On the other hand they need a cleaner design than they have
now. E.g., OptBisect today is a managed static, which we absolutely should
get rid of. Instead, bisect functionality can be much more cleanly
implemented on top of the debug counters!
While the function call for optnone doesn't strike me as
2018 Apr 03
2
Opt Bisect layering
On Tue, Apr 3, 2018 at 8:50 AM Fedor Sergeev <fedor.sergeev at azul.com> wrote:
> > Pass Manager (PassManager.h) itself, does not - it's only templates,
> none of it depends on Region, Loop, etc.
> Well, true but the problem happens when you try to instantiate the thing.
> And for generic features like opt-bisection, ir-print-after-all etc that
> want:
> - to
2018 Oct 01
2
OptBisect implementation for new pass manager
On 10/02/2018 01:17 AM, Kaylor, Andrew wrote:
> Some of the issues we're talking about were also considered when I did the initial implementation of OptBisect. If anyone wants to look at the relevant reviews they can be found here:
Thanks for sharing these, very useful!
> https://reviews.llvm.org/D18576 (Abandoned first attempt)
> https://reviews.llvm.org/D19172 (Committed second
2018 May 03
2
Opt Bisect layering
David,
we definitely need to address this issue and I did not forget about it.
I'm still fleshing out a proposal on a generic solution for "pass
execution control points",
which was inspired by the new pass manager needs but then it appears
we can largerly reuse the implementation for both managers.
Since the implementation should be based on a special Analysis,
it definitely
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
2018 Apr 03
0
Opt Bisect layering
> Pass Manager (PassManager.h) itself, does not - it's only templates,
none of it depends on Region, Loop, etc.
Well, true but the problem happens when you try to instantiate the thing.
And for generic features like opt-bisection, ir-print-after-all etc that
want:
- to have a say before/on/after every execution of every pass
- have a shared implementation of the main logic
you have
2018 Sep 28
3
OptBisect implementation for new pass manager
On 09/28/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
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
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 at azul.com>
> wrote:
>