[Bug target/93532] RISCV g++ hangs with optimization >= -O2

wilson at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Feb 6 19:20:00 GMT 2020


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

--- Comment #12 from Jim Wilson <wilson at gcc dot gnu.org> ---
A bisection on mainline between the gcc-8 and gcc-9 releases shows that this
testcase was fixed by a combine patch for PR87600 that stops combining hard
regs with pseudos to reduce register pressure.  The commentary refers to ira
and lra problems.  A combine patch won't be as safe as a RISC-V backend patch
though.

I tried testing the riscv HARD_REGNO_CALLER_SAVE_MODE patch with buildroot but
it turns out that it is downloading a pre-built compiler instead of building
one.  So dropping in the patch doesn't do anything.  I will have to figure out
what is going on there.

Trying the riscv patch with mainline on the testcase, I see that I get better
rematerialization without the confusing subregs, and I also get smaller stack
frames since we are saving SFmode now to the stack instead of DFmode now. 
Otherwise, I don't see any significant changes to the code.

I tried a make check with the riscv patch on mainline, and got an unexpected
g++ testsuite failure, so I will have to look into that.


More information about the Gcc-bugs mailing list