Displaying 20 results from an estimated 5000 matches similar to: "[LLVMdev] Replacing phi nodes in ScalarEvolution while preserving LCSSA form"
2010 Nov 17
0
[LLVMdev] Replacing phi nodes in ScalarEvolution while preserving LCSSA form
On Nov 17, 2010, at 11:03 AM, Duncan Sands wrote:
> Hi Dan, I whipped up this patch as a more optimal test of whether
> replacing the phi node PN by V will break LCSSA form. I hope it
> is more or less correct, but since I know nothing about loops it
> could well be completely bogus :) Can you please comment on it.
Looks good to me.
Thanks,
Dan
2010 Nov 18
1
[LLVMdev] Replacing phi nodes in ScalarEvolution while preserving LCSSA form
It doesn't seem to fix PR8622.
On Nov 17, 2010, at 8:39 PM, Dan Gohman wrote:
> On Nov 17, 2010, at 11:03 AM, Duncan Sands wrote:
>
>> Hi Dan, I whipped up this patch as a more optimal test of whether
>> replacing the phi node PN by V will break LCSSA form. I hope it
>> is more or less correct, but since I know nothing about loops it
>> could well be
2014 Feb 07
2
[LLVMdev] [RFC] LCSSA vs. SSAUpdater ... FIGHT!
On Feb 7, 2014, at 11:29 AM, Chris Lattner <clattner at apple.com> wrote:
>
> On Feb 1, 2014, at 4:33 AM, Chandler Carruth <chandlerc at gmail.com> wrote:
>
>> So, there are two primary ideas behind SSA form management in the loop optimizers of LLVM:
>>
>> - Require LCSSA form input, leverage its (very powerful) guarantees to simplify maintaining SSA
2020 Nov 09
1
LSR tests failing under new pass manager due to not being in LCSSA form
In an effort to turn on the new pass manager by default, I've been trying
to make all lit tests pass when opt uses the new pass manager. (Change the
default value of -enable-new-pm in opt.cpp to true to repro)
A good chunk of the remaining failures are some loop pass tests, mostly
LSR, that are failing. The legacy PM does not by default run LCSSA before
running loop passes, but the new PM
2016 Oct 17
2
LCSSA verification for the top-level loops
> On Oct 14, 2016, at 9:54 AM, Igor Laevsky <igor at azulsystems.com> wrote:
>>
>> Hi Michael,
> Hi Igor,
Hi Michael,
>
>>
>> +CC llvm-dev
>>
>> My guess is that it would be rather error prone to pinpoint exact places where we start populating new LPPassManager since it’s created lazily via LoopPass::assignPassManager. So we are risking to
2016 Oct 14
2
LCSSA verification for the top-level loops
Hi Michael,
+CC llvm-dev
My guess is that it would be rather error prone to pinpoint exact places where we start populating new LPPassManager since it’s created lazily via LoopPass::assignPassManager. So we are risking to miss adding verifiers in some of the LPPassManager’s.
One similar idea is to introduce LCSSAVerifier function pass and make LCSSA pass to be dependant on it. That will allow
2016 Oct 19
2
LCSSA verification for the top-level loops
Hi Igor,
On Oct 17, 2016, at 10:39 AM, Igor Laevsky <igor at azulsystems.com<mailto:igor at azulsystems.com>> wrote:
On Oct 14, 2016, at 9:54 AM, Igor Laevsky <igor at azulsystems.com<mailto:igor at azulsystems.com>> wrote:
Hi Michael,
Hi Igor,
Hi Michael,
Hi Michael,
What I was referring to is that we can write something like this inside LPPassManager iteration:
if
2014 Feb 01
8
[LLVMdev] [RFC] LCSSA vs. SSAUpdater ... FIGHT!
So, there are two primary ideas behind SSA form management in the loop
optimizers of LLVM:
- Require LCSSA form input, leverage its (very powerful) guarantees to
simplify maintaining SSA form, and also maintain LCSSA form.
- Don't bother with LCSSA form input, assume the worst, and use powerful
incremental SSA formation utilities built on SSAUpdater to form SSA on
demand when needed.
(Note,
2013 Aug 22
2
[LLVMdev] scev questions
Hi,
I'm trying to get the following loop to vectorize (simple reduction):
unsigned int sum2(unsigned int *a, int len){
unsigned int s = 0;
for (int i = 0; i < len; i += 4)
s += *a++;
return s;
}
The loop fails to vectorize because SCEV could not compute the loop exit
count. It appears SCEV cannot handle the non-unit increment of the loop
counter. Is this a known limitation of
2016 Mar 31
2
PHI inst has two exact the same operands?
Dear there,
Is the following phi instruction valid?
%j_8 = phi i32 [ %j_100, %"<bb 13>" ], [ %j_9133, %"<bb 10>" ], [
%j_9133, %"<bb 9>" ]
Variable %j_9133 is in bb 9.
And also this one:
%D.1898_8.i = phi i32 [ %D.1898_27.i, %"<bb 18>.i" ], [ -1, %"<bb 23>" ],
[ %D.1776_193, %"<bb 4>], [ %D.1776_193,
2019 Jun 06
3
[RFC] Expressing preserved-relations between passes from different modules (was: Re: Linker issue)
Any comments at all on this? Chandler perhaps?
I've since dug a bit further, and it seems like the template-based
solution wouldn't work anyway because DLL loading on Windows can't do
the required commoning. So the general approach taken in
https://reviews.llvm.org/D62802 seems to be the only technically
viable path forward, though it would still be good to get an outside
look at the
2008 Dec 09
1
[LLVMdev] scalar-evolution + indvars fail to get the loop trip count?
Hi,
Seems pass scalar-evolution+indvars fail to get the loop trip count of the
following case:
int foo(int x, int y, int lam[256], int alp[256]) {
int i;
int z = y;
for (i = 255; i >= 0; i--) {
z += x;
lam[i] = alp[i];
}
return z;
}
The final optimized ll code is :
define i32 @foo(i32 %x, i32 %y, i32* %lam, i32* %alp) nounwind {
entry:
br label %bb
bb:
2014 Jan 22
3
[LLVMdev] Why should we have the LoopPass and LoopPassManager? Can we get rid of this complexity?
On Wed, Jan 22, 2014 at 1:01 AM, Andrew Trick <atrick at apple.com> wrote:
> On Jan 22, 2014, at 12:44 AM, Chandler Carruth <chandlerc at gmail.com>
> wrote:
>
>
> On Wed, Jan 22, 2014 at 12:33 AM, Andrew Trick <atrick at apple.com> wrote:
>
>> > There appear to be two chunks of "functionality" provided by loop
>> passes:
>> >
2016 Jul 25
3
[PM] I think that the new PM needs to learn about inter-analysis dependencies...
Sent from my Verizon Wireless 4G LTE DROID
On Jul 25, 2016 6:16 PM, Sean Silva <chisophugis at gmail.com<mailto:chisophugis at gmail.com>> wrote:
>
>
>
> On Mon, Jul 25, 2016 at 9:27 AM, Hal Finkel <hfinkel at anl.gov<mailto:hfinkel at anl.gov>> wrote:
>>
>>
>> ________________________________
>>>
>>> From: "Sean
2016 Mar 31
0
PHI inst has two exact the same operands?
yes, this is valid assuming bb9 dominates bb10.
Not sure what you mean by "support this", unless your tool doesn't handle
certain types of CFG's
On Wed, Mar 30, 2016 at 8:12 PM, Xiaochu Liu via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> Dear there,
>
> Is the following phi instruction valid?
>
> %j_8 = phi i32 [ %j_100, %"<bb 13>" ], [
2016 Aug 30
2
Questions on LLVM vectorization diagnostics
Hi Hideki,
Thanks for the interesting writeup!
> On Aug 27, 2016, at 7:15 AM, Renato Golin via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> On 25 August 2016 at 05:46, Saito, Hideki via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
>> Now, I have one question. Suppose we'd like to split the vectorization decision as an Analysis pass and vectorization
2013 Aug 15
0
[LLVMdev] [Polly] Analysis of extra compile-time overhead for simple nested loops
Codeprepare and independent blocks are introducing these loads and stores.
These are prepasses that polly runs prior to building the dependence graph
to transform scalar dependences into data dependences.
Ether was working on eliminating the rewrite of scalar dependences.
On Thu, Aug 15, 2013 at 5:32 AM, Star Tan <tanmx_star at yeah.net> wrote:
> Hi all,
>
> I have investigated the
2013 Aug 16
2
[LLVMdev] [Polly] Analysis of extra compile-time overhead for simple nested loops
Hi Sebpop,
Thanks for your explanation.
I noticed that Polly would finally run the SROA pass to transform these load/store instructions into scalar operations. Is it possible to run such a pass before polly-dependence analysis?
Star Tan
At 2013-08-15 21:12:53,"Sebastian Pop" <sebpop at gmail.com> wrote:
>Codeprepare and independent blocks are introducing these loads and
2013 Aug 16
0
[LLVMdev] [Polly] Analysis of extra compile-time overhead for simple nested loops
I do not think that running SROA before polly is a good idea:
it would defeat the purpose of the code preparation passes that
polly intentionally schedules for the data dependence analysis.
If you remove the data references before polly runs, you would
miss them in the dependence graph: that could lead to incorrect
transforms.
On Thu, Aug 15, 2013 at 7:28 PM, Star Tan <tanmx_star at
2015 Dec 02
5
Is there a way to pass Optimization passes to clang?
0 down vote favorite
<http://stackoverflow.com/questions/34049511/how-to-pass-optimization-passes-to-clang#>
I'm trying to debug an issue for a new target where a testcase fails with
-O1 optimization and passes with -O0 optimization.
I got a list of optimization passes being performed when 'clang -O1' is
called like this:
llvm-as < /dev/null | opt -O1 -disable-output