https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87600

--- Comment #9 from Segher Boessenkool <segher at gcc dot gnu.org> ---
(In reply to Alexandre Oliva from comment #8)
> I've noticed regressions caused by make_more_copies, in scenarios that used
> subreg s for the low part of promoted incoming parms.  With hard regs, the
> substitution into a subreg became a reg, but with a pseudo, it remains a
> subreg, which prevents further combines in some cases, as in e.g.
> gcc_target/powerpc/20050603-3.c on ppc64.

That happens because of the zero_extract problems.  The only thing
make_more_copies has to do with this is that this change exposes this
problem on this testcase.

> I thought one way to go about it could be to scan for subregs of pseudos
> copied from hard regs before introducing the additional copies, and
> introduce the intermediate pseudo with the widest subreg mode if there
> aren't uses of the full pseudo.

Usually we want the *smallest* possible mode for pseudos.  This is
important to get good optimisation.

Reply via email to