This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [4.5] Better support for widening multiplies
On Tue, Feb 17, 2009 at 11:33 PM, Bernd Schmidt <bernds_cb1@t-online.de> wrote:
> Steven Bosscher wrote:
>
>> I think all of this just does not belong in fwprop. We're talking
>> about sign extension elimination here, and there is a pass for that
>> already, see.c.
>
> Wasn't see.c one of those known-broken, works on one target only, passes
> of which we seem to have accumulated a few?
No, it has its limitations but it used to work quite well for a bunch
of targets. The problem is that it fails to handle extends in
PARALLELs, but that can be solved.
I will not deny that making it work properly may be a lot of work, but
I already offered to take care of that (it's been on my list of things
I'd like to do for some time now anyway).
> Besides, we're not eliminating the sign extensions, we're _propagating_
> them to a different place.
We do that in see.c too in phase 1.
> We also deal with zero extensions, and
> shifts .
In see.c we also deal with zero extensions. The pass is mis-named. For
shifts, I don't know.
> Both Paolo and myself have versions of the patch which utilize
> fwprop infrastructure. IMO there's no point in rewriting the whole
> thing to fit into a different framework.
If it's the right thing in the wrong place, then IMO there is always a
point to try and fit it in the right place. Doing the right thing in
the wrong place is how things like regmove and reload came to be.
Gr.
Steven