[Bug rtl-optimization/46793] -fschedule-insns causes ICE in compiling zlib/trees.c

steven at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Dec 3 21:05:00 GMT 2010


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46793

--- Comment #3 from Steven Bosscher <steven at gcc dot gnu.org> 2010-12-03 21:05:46 UTC ---
The bug is in the architecture, not in the scheduling pass. You cannot expect
scheduling before register allocation to always yield code that you can
register-allocate with just 3 general registers available.

Enabling it only for AMD64 is not a work-around, it's the only proper thing to
do if you want to enable the pre-RA scheduling pass by default.

And there is still -fsched-pressure that you could try.

But I doubt you will get a patch approved to enable scheduling for 32-bits
ix86. The failure you are seeing can be triggered quite easily even _without_
scheduling enabled. Just search bugzilla for all the "unable to find spill
register" bugs on i386, this one is far from unique.



More information about the Gcc-bugs mailing list