[Bug target/92291] Non-optimal code generated for H8
law at redhat dot com
gcc-bugzilla@gcc.gnu.org
Mon Feb 3 20:30:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92291
Jeffrey A. Law <law at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2020-02-03
CC| |law at redhat dot com
Ever confirmed|0 |1
--- Comment #1 from Jeffrey A. Law <law at redhat dot com> ---
So there's a few issues at play here.
First forwardprop propagates the address computation into the memory
references. This should generally be considered a good thing. The downside is
our address lowering pass only handles a very small subset of addresses, in
particular it doesn't handle the MEM_REFs that we get from forward propagation.
Of course this hints at a workaround, -fno-tree-forwprop.
If we add support for these MEM_REF expressions to the address lowering pass,
we still generate the address in a suboptimal way which inhibits CSE on the
addresses in gimple -- and even though the later RTL CSE passes will clean
things up.
Finally, RTL CSE should be handling the code as currently presented by the
gimple optimizers. For reasons I haven't dug into yet, we're not CSE-ing the
libcall.
Anyway, just recording thoughts here so they're not lost.
More information about the Gcc-bugs
mailing list