Hi, Thank you very much! I tried with and without -fcode-hoisting the file I mentioned earlier gcc/testsuite/gcc.c-torture/execute/pr58574.c but it remains the same. But I can certainly extend on this.
Sorry I didn't found out this myself! I'll do more research next time before I start asking questions. Best Regards, Sebastian > -----Original Message----- > From: Andrew Pinski [mailto:pins...@gmail.com] > Sent: 18 January 2018 16:19 > To: Sebastian Perta <sebastian.pe...@renesas.com> > Cc: Martin Jambor <mjam...@suse.cz>; gcc-patches@gcc.gnu.org; > l...@gcc.gnu.org > Subject: Re: New code merge optimization? > > On Thu, Jan 18, 2018 at 8:03 AM, Sebastian Perta > <sebastian.pe...@renesas.com> wrote: > > Hi, > > > > Thank you! > > As the description says this finds equivalent functions, I would like to > > find > identical sequences inside > > functions but at least this will provide all the up to date tools to compare > code sequences, thank you again! > > There is already some identical sequence finding (code hoisting) in > GCC 7 (and above), see > https://gcc.gnu.org/ml/gcc-patches/2016-07/msg00360.html > for the patch. > > Thanks, > Andrew > > > > > Best Regards, > > Sebastian > > > > > >> -----Original Message----- > >> From: Martin Jambor [mailto:mjam...@suse.cz] > >> Sent: 18 January 2018 15:18 > >> To: Sebastian Perta <sebastian.pe...@renesas.com>; gcc- > >> patc...@gcc.gnu.org > >> Cc: l...@gcc.gnu.org > >> Subject: Re: New code merge optimization? > >> > >> Hi, > >> > >> On Thu, Jan 18 2018, Sebastian Perta wrote: > >> > Hello, > >> > > >> > I am interested in implementing a new pass in gcc to merge identical > >> > sequences of code in GCC to be used mainly for RL78. > >> > The commercial RL78 compilers have such algorithms implemented and > >> they make > >> > quite good use of it. > >> > Opportunities arise from the limited capabilities of RL78, for other > targets > >> > this might be a lot less useful. > >> > > >> > A while ago I found the following: > >> > https://www.gnu.org/software/gcc/projects/cfo.html > >> > And I ported all algorithms to gcc 4.9.2 and tried it on RL78 and RX and > >> > this is what I found out: > >> > For RX: no visible improvements with any of them > >> > For RL78: some minor improvements only with -frtl-seqbastr: > >> > Compiling all the C files from gcc/testsuite/gcc.c-torture/execute/*c > with > >> > "-Os" and "-Os -frtl-seqabstr" (using the modified gcc 4.9.2) > >> > The algorithm was effective only in 60 files(out of 1643 files, that's > >> > only > >> > 0.03% of the files currently present in gcc/testsuite/gcc.c- > torture/execute) > >> > On those 60 files I got an average of 6.5% improvement with the best > >> > improvement for pr58574.c (36.4%). > >> > > >> > What do you think: is it worthwhile porting this to the trunk or I will > >> > just > >> > waste my time? > >> > Or should I start fresh? Maybe start from here: > >> > http://llvm.org/docs/MergeFunctions.html? > >> > >> Martin Liška contributed identical code folding to GCC quite a few years > >> ago now. Look up the -fipa-icf option. If that is not enough for you, > >> starting from that seems more natural. > >> > >> Martin > >> > >> > > >> > Gimple or rtl? > >> > I suppose the preferred way will be to do this in gimple; however based > on > >> > what I did so far, it's more likely to find identical sequences in rtl > >> > (for > >> > RL78). > >> > > >> > Any thoughts? Thank you! > >> > > >> > Best Regards, > >> > Sebastian > > > > > > > > Renesas Electronics Europe Ltd, Dukes Meadow, Millboard Road, Bourne > End, Buckinghamshire, SL8 5FH, UK. Registered in England & Wales under > Registered No. 04586709. Renesas Electronics Europe Ltd, Dukes Meadow, Millboard Road, Bourne End, Buckinghamshire, SL8 5FH, UK. Registered in England & Wales under Registered No. 04586709.