This is the mail archive of the
mailing list for the GCC project.
Re: Loop fusion.
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: "Bin.Cheng" <amker dot cheng at gmail dot com>
- Cc: Toon Moene <toon at moene dot org>, gcc mailing list <gcc at gcc dot gnu dot org>
- Date: Mon, 23 Apr 2018 13:02:53 +0200
- Subject: Re: Loop fusion.
- References: <firstname.lastname@example.org> <CAHFci2--Z+=foKyXWMp9PqAmufuDvDE=HLk9pm8Bbu+5b2M91w@mail.gmail.com>
On Mon, Apr 23, 2018 at 12:59 PM, Bin.Cheng <email@example.com> wrote:
> On Sun, Apr 22, 2018 at 3:27 PM, Toon Moene <firstname.lastname@example.org> wrote:
>> A few days ago there was a rant on the Fortran Standardization Committee's
>> e-mail list about Fortran's "whole array arithmetic" being unoptimizable.
>> An example picked at random from our weather forecasting code:
>> ZQICE(1:NPROMA,1:NFLEVG) = PGFL(1:NPROMA,1:NFLEVG,YI%MP)
>> ZQLI(1:NPROMA,1:NFLEVG) = PGFL(1:NPROMA,1:NFLEVG,YL%MP)
>> ZQRAIN(1:NPROMA,1:NFLEVG) = PGFL(1:NPROMA,1:NFLEVG,YR%MP)
>> ZQSNOW(1:NPROMA,1:NFLEVG) = PGFL(1:NPROMA,1:NFLEVG,YS%MP)
>> The reaction from one of the members of the committee (about "their"
>> 'And multiple consecutive array statements with the same shape are “fused”
>> exactly so that the compiler can generate good cache use. This sort of
>> optimization is pretty low hanging fruit.'
>> As far as I can see loop fusion as a stand-alone optimization is not
>> supported as yet, although some mention is made in the context of graphite.
>> Is this something that should be pursued ?
> I don't know the current status of fusion in graphite. As for
> traditional fusion transformation, I think it's not very difficult to
> be implemented along with existing distribution, actually, quite lot
> of code should be shared. What we do need are something like: more
> motivation cases, good/conservative cost model.
Yes, I guess before distribution you want to do maximum fusion and then
apply (re-)distribution on the fused loop. The cost model should be the
very same for distribution/fusion.
>> Kind regards,
>> Toon Moene - e-mail: email@example.com - phone: +31 346 214290
>> Saturnushof 14, 3738 XG Maartensdijk, The Netherlands
>> At home: http://moene.org/~toon/; weather: http://moene.org/~hirlam/
>> Progress of GNU Fortran: http://gcc.gnu.org/wiki/GFortran#news