This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Variable Expansion in unroller + Register Pressure Utility


On Sunday 12 September 2004 09:08, Revital Eres wrote:
> As before; the code includes part of Zdenek Dvorak patch for
> splitting induction variables because it is not in mainline yet.
> (http://gcc.gnu.org/ml/gcc-patches/2004-06/msg02425.html)

There is a later posting of this patch, which is at
http://gcc.gnu.org/ml/gcc-patches/2004-08/msg00397.html,
does not need the fix you posted for it.  I've fixed two more
buglets in that patch and I'm re-testing it right now.  Mark
said he'd review it, but he never reviewed the updated patch,
I hope someone will look at it when I repost it.


> Comments are welcome,

First of all, your ChangeLog entry is wrapped :-/

Second, do you have numbers on how this affects things like compile
time and performance of the resulting code?  I'm especially curious
about SPECfp on i686 and/or Opteron, or some other register starved
architecture.

Third, I don't like the idea of your patch much - you're trying to
push three different things in with one patch.  That's not a good
idea in stage3, can we please try a different approach?

1) Get the IV splitting patch in ASAP (as I said, working on that).
2) Get the register pressure tool in.
3) Get your memory splitting stuff in.

I hope Mark agrees that at least (1) is safe for stage3, as you and
others (me, Zdenek) have been using it in our local trees for months
now and because that patch was posted well before the stage3 deadline
(we need more reviewers ;-). I don't know if the other two were on
the shortlist of projects allowed for stage3.


Just a few questions about the patch itself:

> + fvariable-expansion-in-unroller
> + Common Report Var(flag_variable_expansion_in_unroller)
> + Apply variable expansion when loops are unrolled.

Not enabled at any optimization level?


> + /* Return the register pressure estimation.  */
> +
> + int
> + estimate_register_pressure (int regno)
> + {

Please, more comment.  What is the REGNO argument for, what does
this function return?  How does this work for registers that are
in multiple classes?

Gr.
Steven



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]