On 5/11/23 10:55, Paul Koning wrote:
On May 11, 2023, at 11:05 AM, Hans-Peter Nilsson via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
...
Yes, very interesting. Thank you for sharing this. I've
seen regressions with LRA for CRIS too, for
"double-register-sized" types, which for CRIS, a 32-bit
target, translates to 64-bit types (DFmode and DImode), and
where LRA does a much worse job than reload; spills a lot
more often to stack, even after trying every
register-allocation-related hook I found (and also an LRA
patch which helped only by a fraction, but regressed results
on x86_64-linux, so let's quickly forget it again).
That observation makes me a bit worried. While CRIS may not be a priority
platform, that description makes it sound like a case that would be significant
in any 32 bit platform, which would include priority ones like i386 and ARM.
If I understood things correctly, it seems to impact more when the
target exposes double-word patterns but doesn't actually have
instructions for those operations. That's an implementation pattern
we've largely been moving away from over the last decade or so.
Jeff