This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Modulo-scheduling improvements. Patch 2 of 2. (re-submission)
- From: trevor_smigiel at playstation dot sony dot com
- To: Revital1 Eres <ERES at il dot ibm dot com>
- Cc: Ayal Zaks <ZAKS at il dot ibm dot com>, abel at ispras dot ru, andrew_pinski at playstation dot sony dot com, dje at watson dot ibm dot com, gcc-patches at gcc dot gnu dot org, Mircea Namolaru <NAMOLARU at il dot ibm dot com>, Zdenek Dvorak <rakdver at kam dot mff dot cuni dot cz>
- Date: Mon, 27 Aug 2007 11:49:58 -0700
- Subject: Re: [PATCH] Modulo-scheduling improvements. Patch 2 of 2. (re-submission)
- References: <OFCA261A87.73FE22C4-ONC2257341.0077E8FA-C2257342.007F49CB@LocalDomain> <OF7A129E32.9346998D-ONC2257344.002E5B50-C2257344.004870AD@il.ibm.com>
Revital,
The spu.md part is ok.
The comment is incorrect:
+. ??? Introducing such do-loop pattern may increase register
+ pressure by adding an extra IV. */
It's not the register pressure that causes performance degradation, it
is the possible introduction of a new block to intialize the new IV.
That potentially effects branch optimizations, which can make a big
difference on SPU.
Trevor
* Revital1 Eres <ERES@il.ibm.com> [2007-08-27 09:30]:
> Hello,
>
> Regarding the following -
>
> > > + for (insn = head; insn != PREV_INSN (tail); insn = NEXT_INSN (insn))
> > > + if ((found = reg_mentioned_p (reg, insn)) == true)
> > ^^^^^^^ redundant
>
> I received an error/warning trying to remove it; so I left it as is.
>
> > Suggest to combine the two checks, e.g. by:
> >
> > + first_insn_not_to_check = (GET_CODE (PATTERN (tail)) == PARALLEL ?
> tail :
> > PREV_INSN (tail));
> > +
>
> I'll address this in next patch.
>
> Attached is the version I intend to commit once I'll get the final OK
> for the spu.md part.
>
> Thanks,
> Revital