Displaying 20 results from an estimated 1000 matches similar to: "Status of the New Pass Manager"
2019 Sep 13
3
Loop Opt WG Meeting Minutes for Sep 11, 2019
Thanks Florian.
Tim you said:
> Some cases can be undone by rematerialization, but not all, and it can
involve a lot of effort which increases compile time.
Do you have examples of cases where rematerialization is not possible? We
are interested in learning about any previous attempts at trying to address
the issue in RA. Have you tried it?
Bardia Mahjour
Compiler Optimizations
IBM Toronto
2019 May 15
3
Delinearization validity checks in DependenceAnalysis
Hi David,
Thank you very much for your response.
I also get correct results for my example (for a 64-bit target) if the
upper bounds are changed to unsigned. The reason is simply because clang
zero-extends `m` for address calculations but sign-extends it for the loop
upper bound. This prevents SCEV from canceling out the 'm' term from the
difference expression that looks like `(-3 +
2020 Apr 17
2
Scalar Evolution Expressions Involving Sibling Loops
Thanks for sharing the known problem.
I think to solve the problem properly, we need to fully understand why that
assumption about dominance is there and the implications of removing it.
It would be good if you could be more specific about your idea of nullptr
or SCEV_unknown (eg which function would return those values and when), but
returning nullptr from getAddExpr or getSCEVAtScope may be
2019 Jul 17
3
Loop Opt WG Meeting Minutes for July 17, 2019
Hi all,
Apparently some people had trouble joining today. I also had trouble using
the attendee ID provided by webex. I've canceled the meeting series and
will be scheduling a new one with an updated link. Please remember to
update your calendars with the new invite.
My apologies to those who couldn't join today, and to everyone for the
churn.
Today's Meeting Minutes:
2020 Apr 16
2
Scalar Evolution Expressions Involving Sibling Loops
Hi Jimmy,
It's good to know that the problem is not specific to the case I ran into.
May be you can provide your example as well, since Philip seems to be
interested in some specific examples. If the assertion in getAddrExpr is
deemed necessary, then I think a condition check would be the next best
solution as it helps client code guard against such cases and make
alternative arrangements to
2020 Mar 30
2
Scalar Evolution Expressions Involving Sibling Loops
> I'm not following your example. If you have two sibling loops with the
same parent, one will frequently, but not always dominate the other. Can
you give a specific example of when forming a recurrence between two
siblings (without one dominating the other), is useful?
The situation can happen with guarded loops or with a user guard like
below:
if (c) {
for (i = 0; i < n; i++)
2019 May 16
2
Delinearization validity checks in DependenceAnalysis
Hello
Under the proviso that it's been a while since I looked into any of these things...
On 05/15, Bardia Mahjour via llvm-dev wrote:
> I also get correct results for my example (for a 64-bit target) if the upper
> bounds are changed to unsigned. The reason is simply because clang zero-extends
> `m` for address calculations but sign-extends it for the loop upper bound. This
>
2019 May 22
2
Delinearization validity checks in DependenceAnalysis
Hello
Yes, I agree that the SCEV cannot be simplified. Is my understanding correct that it is passed to a function like "isKnownNegative"? Which could still be able to prove is always true.
The delinearisation may be valid, depending on exactly how you define delinearisation (under what conditions it should be giving results). It would be invalid for DA to return a dependency of [0
2020 Mar 30
2
Scalar Evolution Expressions Involving Sibling Loops
Forwarding to the dev list, in case others ran into similar issues and/or
have input on this topic.
Bardia Mahjour
----- Forwarded by Bardia Mahjour/Toronto/IBM on 2020/03/30 02:25 PM -----
From: Bardia Mahjour/Toronto/IBM
To: listmail at philipreames.com
Cc: "Michael Kruse" <llvm at meinersbur.de>
Date: 2020/03/26 11:47 AM
Subject: Scalar Evolution Expressions Involving Sibling
2019 Sep 11
2
Loop Opt WG Meeting Minutes for Sep 11, 2019
---------------------------
Wed, Sep 11, 2019:
---------------------------
- LICM vs Loop Sink Strategy (Whitney)
- LICM and SCEV expander host code with no regards to increased
live-ranges. This is a long standing issue where historically
preference has been to keep LICM more aggressive.
- Two questions from IBM side:
a. This problem is not specific to the POWER
2019 May 13
3
Delinearization validity checks in DependenceAnalysis
Hi all,
I have been looking at the `DependenceAnalysis` pass in
`llvm/include/llvm/Analysis/DependenceAnalysis.h`.
In order for this analysis to produce accurate dependence vectors for
multi-dimensional arrays in nested loops, it needs to "delinearize" array
element accesses to recover the subscripts in each dimension of the array.
I believe that the current implementation of
2020 Jul 13
2
Loop Opt WG Meeting Agenda for July 15, 2020
Agenda for the meeting of July 15 @ 11:00 am (EST):
- Loop-Hierachical IR Representation Design (Michael Kruse)
- Status Updates
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200713/44b826a0/attachment.html>
2019 May 30
3
Loop Optimization Working Group
Dear LLVM community,
we would like to form a working group that focuses on loop
optimizations and the loop optimization pipeline in LLVM. This working
group would meet at a regular cadence (weekly or bi-weekly depending
on people's schedules) and discuss topics relevant to loop
optimizations. These topics would include:
- Implementation of current loop optimizations
- Proposals for
2019 May 24
2
Delinearization validity checks in DependenceAnalysis
[CC bollu, mferguson, shil]
Am Do., 23. Mai 2019 um 17:13 Uhr schrieb Bardia Mahjour <
bmahjour at ca.ibm.com>:
> Thanks David and Michael for the clarification.
>
> I think I understand the rational behind those checks in delinearization
> now.
>
> > Some other languages have stronger guarantees about their array
> dimensions accesses being in range. But this being
2020 Apr 23
2
Incorrect behavior in the LLVM dependence analyzer
Hi all,
I am trying to use the dependence analyzer in a pass that I am writing and I was surprised to see an incorrect behavior when I try to query DependenceInfo for dependences between instructions. Specifically, if the two instructions are loads/stores accessing an array in a loop, the depend() method would return a dependence regardless of the order of instructions specified. (i.e. if the two
2020 Jul 22
2
NPM and code-size
(NPM: new pass manager; LPM: legacy pass manager)
In a first quick experiment today I compared code-size of the LMP vs. the NMP for the CSiBE benchmark (and some other), and this shows code-size increases with the NPM that would probably be unacceptable for us. So, now I am wondering how/if we need to mitigate this, and have a bunch of questions.
As I've noticed quite some activity around
2020 Jul 23
2
New pass manager for optimization pipeline status and questions
FWIW I'm in favor of this direction while making sure that we keep focus on
removing the vestiges of the old pass manager for the code health impact to
the project.
-eric
On Wed, Jul 22, 2020 at 3:15 PM Philip Reames via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> (I'm probably going to derail your thread, sorry about that.)
>
> I think at this point, we should just
2020 Jul 24
3
New pass manager for optimization pipeline status and questions
Hi all,
The current plan is to prioritize enabling the NPM as soon as possible, and
that includes addressing any blockers that are known or arise. This means
prioritizing those blockers over other LLVM work. The current umbrella bug
is PR46649 <https://bugs.llvm.org/show_bug.cgi?id=46649>.
Philip's point is spot on that we are deficient now in the testing of the
LegacyPassManager,
2020 Jul 28
2
New pass manager for optimization pipeline status and questions
On Fri, Jul 24, 2020 at 12:54 PM Sjoerd Meijer <Sjoerd.Meijer at arm.com>
wrote:
> Hi Alina,
>
> I think this is an excellent direction, this is the direction we should
> take here. Just a somewhat irrelevant disagreement on this though:
>
> > Philip's point is spot on that we are deficient now in the testing of
> the LegacyPassManager,
>
> I disagree
2020 Jun 25
4
Renaming passes
After talking with some NPM people, I believe the ultimate goal after NPM
is enabled by default is to only support `-passes=`, and remove support for
`-foo-pass`.
However, until NPM is enabled by default, we still want tests using opt to
use the legacy PM by default.
We could attempt to make `-passes=` work with the legacy PM and have a
legacy vs new PM flag, but given the design/syntax of