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

--- Comment #12 from Jeffrey A. Law <law at redhat dot com> ---
octeon-exts-3 can be fixed with a relatively simple pattern in mips.md or with
a bit of code in combine.c.

fix-r4000-10.c is more interesting.  Hard register propagation does its thing
and exposes a bit of dead code.  Removing that dead code in turn exposes
additional hard register propagation opportunities, which then exposes more
dead code.  But running those passes in their entirety seems horribly
heavyweight for this issue.  Particularly since the test goes out of its way to
disable lower-subreg.

We had another BZ in this cycle where post-reload splitting exposed dead code. 
So we might be able to make a case for RTL DCE after splitting (or have some
gross mips.md patterns to avoid the dead code).  That would help some.  But to
really fix this hard register cprop would have to discover at least the trivial
cases where its actions expose dead code, remove the dead code and reprocess
the block.  I'm still not sure how wise such hacks to hard register cprop would
be.

I haven't dug into fpr-moves-5.c yet.

Reply via email to