Re: conditional lim

2015-07-15 Thread Richard Biener
move_computations. The patch is doing something in the >>>>>>> following 3 calls inside of this method. >>>>>>> >>>>>>> >>>>>>> >>>>>>> 3.1 (more details below) walker.walk – move computat

Re: conditional lim

2015-07-15 Thread Evgeniya Maenkova
kind of uses are that? By definition all stmts executed >>>>> under condition A that are used in code not under condition A have >>>>> a PHI node associated. This is why the existing conditional movement >>>>> handling moves PHI nodes (and all de

Re: conditional lim

2015-07-14 Thread Richard Biener
>>>>If you move the PHI node for x then you don't need to insert any other >>>> PHI nodes (and you _do_ have to move the PHI node anyway). >>> >>>> >>>>> 3.2 (more details below) create_phi_nodes – create phi nodes for >>>&

Re: conditional lim

2015-06-29 Thread Evgeniya Maenkova
gt; That is, if you move a conditionally executed statement but not >>> any PHI node it feeds then the movement is useless. >>> >>> But maybe I am missing something about the PHI business. >>> >> Ok. I have different understanding on this (and am afraid of

Re: conditional lim

2015-06-29 Thread Richard Biener
some bb >>> which dominates preheader), then we add such name to fl_names_map. >>> >>> 3.2 Create_phi_nodes >>> >>> For each of the loops we go over ((phi_data*) loop->aux)->stmts. These >>> are statements which were moved, but they have

Re: conditional lim

2015-06-09 Thread Evgeniya Maenkova
se move_phis executed before move_computations, that just moves > invariant PHI nodes (which this all is about - see above) and their > controlling conditions and only then move their dependencies. I didn;t understand so far (I think let's clarify previous questions,especially about p

Re: conditional lim

2015-06-09 Thread Richard Biener
as ok to me to >> implement it such way, maybe I’m not correct. ): >> >> a) Loop1 >> >> { >> >> If (a) >> >> Loop2 >> >> { >> >>Stmt - Inv

Re: conditional lim

2015-05-29 Thread Evgeniya Maenkova
> > a) gcc/testsuite/gcc.dg/tree-ssa/loop-7.c, > gcc/testsuite/gcc.dg/tree-ssa/recip-3.c – changed tests: > > - gcc/testsuite/gcc.dg/tree-ssa/loop-7.c changed as > predicated lim moves 2 more statements out of the loop; > > - gcc/testsuite/gcc.dg/tree-ssa/r

Re: conditional lim

2015-05-27 Thread Evgeniya Maenkova
;>> >>>> Loop1 >>>> >>>> { >>>> >>>> … >>>> >>>> If (cond1) >>>> >>>> If (cond2) >>>> >>>> If (cond3) >>&

Re: conditional lim

2015-05-27 Thread Richard Biener
;>} >>> >>> Stmt will be moved out only if cond1 is always executed in Loop1. >>> >>> c) It took me a long time to write all of these code, so there >>> might be other peculiarities which I forgot to mention. :) >>> >>>

Re: conditional lim

2015-05-26 Thread Evgeniya Maenkova
It took me a long time to write all of these code, so there >> might be other peculiarities which I forgot to mention. :) >> >>Let’s discuss these ones as you will review my patch. >> >> 3) Patch consists of 9 files: >> >> a)

Re: conditional lim

2015-05-26 Thread Richard Biener
as you will review my patch. > > 3) Patch consists of 9 files: > > a) gcc/testsuite/gcc.dg/tree-ssa/loop-7.c, > gcc/testsuite/gcc.dg/tree-ssa/recip-3.c – changed tests: > > - gcc/testsuite/gcc.dg/tree-ssa/loop-7.c changed as > predicated lim moves 2 more statements out

[patch] conditional lim

2015-05-10 Thread Evgeniya Maenkova
[subj corrected] Hi, Andy Thanks for your clarification. Then I'll try to implement some chain of debug statements to make the value computed in the branch available inside the loop. Or may be you have better ideas? Waiting for further comments regarding the whole patch from you, Richard and ot

Re: conditional lim

2015-05-09 Thread Andi Kleen
Evgeniya Maenkova writes: > > So, in my opinion it’s ok to generate additional phi node for debug > case. But I’m not a compiler expert and maybe there is some > requirement that debug and non-debug versions should differ only by > debug statements, I don’t know. gcc has such a requirement. Othe

conditional lim

2015-05-08 Thread Evgeniya Maenkova
– with conditional lim recip optimization in this test doesn’t work (the corresponding value is below threshold as I could see in the code for recip, 1<3). So to have recip working in this test I changed test a little bit. b) gcc/tree-ssa-loop-im.c – the patched lim per se c)