Displaying 20 results from an estimated 2000 matches similar to: "Opt Bisect layering"
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 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 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 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 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 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:
>
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 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 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 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 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 Nov 06
2
[RFC] Enable thread specific cl::opt values for multi-threaded support
It seems relevant to point out there have been several efforts over the years to solve this problem by eliminating the static initializers in LLVM and migrate cl::opts to storing their values in a context object. One of those efforts was made by me back in 2014 (see https://reviews.llvm.org/D6207 <https://reviews.llvm.org/D6207>).
One of the perennial problems with cl::opt is that many of
2018 Jun 08
2
RFC: Pass Execution Instrumentation interface
Care to expand a bit on what you mean by per-optimization level? Preferably with a use case.
To me optbisect is a low level developer tool and it doesn't cope well with a crude user level hammer of optimization level.
F.
On Fri, Jun 8, 2018 at 9:12 AM +0300, "Zhizhou Yang" <zhizhouy at google.com<mailto:zhizhouy at google.com>> wrote:
Hi Fedor,
Thanks for replying
2018 Jun 07
5
RFC: Pass Execution Instrumentation interface
TL;DR
====
This RFC suggests an API to enable customizable instrumentation of pass
execution.
The intent is to have a common machinery to implement all the
pass-execution-debugging
features mentioned here.
Prime target of the interface is the new pass manager.
The overall approach and most of the implementation details should be
equially applicable
to the legacy one though.
Background
2018 Jun 08
2
RFC: Pass Execution Instrumentation interface
Thanks Craig, that's exactly what I mean, stopping at particular changes
inside a pass.
Would you please refer me the discuss about combining opt-bisect with debug
counters? Is it already under implementation?
On Fri, Jun 8, 2018 at 12:19 AM Craig Topper <craig.topper at gmail.com> wrote:
> I think that "level" was referring to what level of granularity the
>
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 Sep 26
2
OptBisect implementation for new pass manager
Philip,
It kinda depends on user expectations.
What do you really expect as a result of your compilation when you set
-opt-bisect-limit=X?
Do you just get a resulting IR and scan for the bad pattern?
Then you dont care about pass sequences and do brute-force bisect.
Do you expect to get a runnable code at the end and check for buggy
run-time behavior?
Then you need to keep the passes that are
2018 Jun 07
2
RFC: Pass Execution Instrumentation interface
On 06/07/2018 06:11 PM, Chandler Carruth wrote:
> We had already talked about this, so unsurprisingly I'm generally in
> favor of the direction. Some comments below.
>
> On Thu, Jun 7, 2018 at 2:00 AM Fedor Sergeev <fedor.sergeev at azul.com
> <mailto:fedor.sergeev at azul.com>> wrote:
>
> - access through LLVM Context (allows to control life-time and