debug build compiler has so many assertions and verification checks that the total compile time is totally skewed. Sun
On Wed, Jan 11, 2012 at 11:43 AM, Gang Yu <yugang...@gmail.com> wrote: > I have a whole build for the linux kernel(the intensive using of ASM > statements) > > We find > > 428777 tries for copy propragation for vars inside ASM_INPUT, in 3845 files > , 28609 pus > > 12560 successfuly copy proped in 1374 files, 3060 pus > > The total build time in XEON x5570(2.93G, 24020M memory) workstation, single > threaded make , debug build compiler, O2 level, default .config(all drivers > and modules) > > is 6h57m13s, i.e, no obvious increase in build time. The previouslys are > typically using at 6h50m or so for a whole build. We should also consider > the time spent on the IO dump for the debug purpose. > > We believe the patch does not introduce obviously performance regression, > and we do see there are more copyprops in the build. > > Regards > Gang > > > On Sat, Jan 7, 2012 at 9:26 PM, Sun Chan <sun.c...@gmail.com> wrote: >> >> copy prop is not always a win. I'd like to see some performance >> testing. If possible, compile time testing. it is known to cause >> longer compile time also (it is basically a n^^2 algo >> Sun >> >> On Sat, Jan 7, 2012 at 5:28 PM, Gang Yu <yugang...@gmail.com> wrote: >> > Thanks for the review. >> > >> > The new patch introduces more copy-props in the code. so, personally I >> > think >> > if it will not introduce performance regression. >> > >> > We test the whole kernel build, besides fix bug787, it does not >> > introduce >> > new failures. >> > >> > Regards >> > Gang >> > >> > >> > On Sat, Jan 7, 2012 at 1:54 PM, Sun Chan <sun.c...@gmail.com> wrote: >> >> >> >> this fix looks better. i am still a bit worry about regressions >> >> (performance). Have you checked perf regression with this change? >> >> Sun >> >> >> >> On Sat, Jan 7, 2012 at 1:36 PM, Gang Yu <yugang...@gmail.com> wrote: >> >> > Hi, >> >> > >> >> > I have a new fix for the bug787, the cut-down case from Rao(thanks) >> >> > is >> >> > as >> >> > follows: >> >> > >> >> > extern int main(int argc) >> >> > { >> >> > int res1; >> >> > int val0,val1; >> >> > val1=100; >> >> > if(1) >> >> > { >> >> > asm("bswapl %0" : "=r" (val0) : "0" (val1)); >> >> > res1=val0; >> >> > } >> >> > val0=res1; >> >> > asm("bswapl %0" : "=r" (val1) : "0" (val0)); >> >> > } /* main */ >> >> > analysis: >> >> > >> >> > Current open64 disallows copy propagation into ASM_INPUT for the var >> >> > and >> >> > ivar cases, this is reasonable since some constraints do only allow >> >> > the >> >> > parameter in specific form. >> >> > >> >> > If we fix following Rao's suggested way, i.e, mark some identity >> >> > assignment >> >> > undeletable for DCE, then we need special marking work for the >> >> > identity >> >> > assignment. >> >> > >> >> > a sound way as RAO suggested is say if the LHS of the identity >> >> > assignment >> >> > has flag CR_DONT_PROP, we disable deleting this identiy assign. >> >> > However, >> >> > this triggers the problem that other identity assign also undeletable >> >> > only >> >> > if its LHS has CR_DONT_PROP, so bug882 thrown out and it is hard to >> >> > patch >> >> > again for this special handling, this changes the default >> >> > verifycation >> >> > and DCE behavior. >> >> > >> >> > My suggested way is that we try propagate to a var inside ASM_INPUT, >> >> > if >> >> > the >> >> > propagated expr is also a var, we allow this propagation. in the >> >> > above >> >> > case >> >> > >> >> >>LINE 13___ >> >> >> LDID I4 I4 sym5v3 0 ty=402 <u=2 cr13> flags:0x8 b=-1 #res1 >> >> >>OPR_STID I4 I4 sym4v4 0 <u=0 cr15> b=-1 flags:0x2 pj2 Sid-1 >> >> > chi <> 0x0x80e1e40 >> >> >>LINE 14___ >> >> > mu<9/cr14 > >> >> >> LDID I4 I4 sym4v4 0 ty=402 <u=0 cr15> flags:0x0 b=-1 #val0 >> >> >> ASM_INPUT opnd:1 <u=0 cr16> isop_flags:0xc0000 flags:0x0 b=E1 >> >> >> ASM_STMT <u=0 cr17> isop_flags:0xc0000 flags:0x0 b=-1 >> >> >>OPR_ASM_STMT b=-1 flags:0x2 pj2 Sid-1 >> >> > sym5v3 is propagated into OPR_ASMINPUT. >> >> > >> >> > The patch below: >> >> > >> >> > --- a/osprey/be/opt/opt_prop.cxx >> >> > +++ b/osprey/be/opt/opt_prop.cxx >> >> > @@ -1504,9 +1504,23 @@ COPYPROP::Copy_propagate_cr(CODEREP *x, >> >> > BB_NODE >> >> > *curbb, >> >> > expr = Copy_propagate_cr(x->Opnd(i), curbb, inside_cse, >> >> > in_array); >> >> > else { >> >> > // OSP_384 >> >> > - if(opr == OPR_ASM_INPUT) >> >> > - x->Opnd(i)->Set_flag(CF_DONT_PROP); >> >> > - expr = NULL; >> >> > + if(opr == OPR_ASM_INPUT) { >> >> > + // open64.net bug787. Try propagate for VAR first, if >> >> > the >> >> > propagated expr is the same >> >> > + // kind to the original one,i.e, also a VAR. we allow >> >> > this >> >> > propagation. otherwise, disable it. >> >> > + if ( x->Opnd(i)->Kind() == CK_VAR ) { >> >> > + CODEREP *possible_prop = Copy_propagate_cr(x->Opnd(i), >> >> > curbb, >> >> > inside_cse, in_array); >> >> > + if (possible_prop && possible_prop->Kind() == >> >> > x->Opnd(i)->Kind()) >> >> > + expr = possible_prop; >> >> > + else { >> >> > + x->Opnd(i)->Set_flag(CF_DONT_PROP); >> >> > + expr = NULL; >> >> > + } >> >> > + } >> >> > + else { >> >> > + x->Opnd(i)->Set_flag(CF_DONT_PROP); >> >> > + expr = NULL; >> >> > + } >> >> > + } >> >> > } >> >> > #else >> >> > please gatekeeper help a review >> >> > >> >> > Thanks. >> >> > >> >> > Regards >> >> > Gang >> >> > >> >> > >> >> > >> >> > ------------------------------------------------------------------------------ >> >> > Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a >> >> > complex >> >> > infrastructure or vast IT resources to deliver seamless, secure >> >> > access >> >> > to >> >> > virtual desktops. With this all-in-one solution, easily deploy >> >> > virtual >> >> > desktops for less than the cost of PCs and save 60% on VDI >> >> > infrastructure >> >> > costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox >> >> > _______________________________________________ >> >> > Open64-devel mailing list >> >> > Open64-devel@lists.sourceforge.net >> >> > https://lists.sourceforge.net/lists/listinfo/open64-devel >> >> > >> > >> > > > ------------------------------------------------------------------------------ Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex infrastructure or vast IT resources to deliver seamless, secure access to virtual desktops. With this all-in-one solution, easily deploy virtual desktops for less than the cost of PCs and save 60% on VDI infrastructure costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox _______________________________________________ Open64-devel mailing list Open64-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/open64-devel