[Bug middle-end/91753] Bad register allocation of multi-register types

wdijkstr at arm dot com gcc-bugzilla@gcc.gnu.org
Thu Sep 12 21:49:00 GMT 2019


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

Wilco <wdijkstr at arm dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |wdijkstr at arm dot com

--- Comment #2 from Wilco <wdijkstr at arm dot com> ---
(In reply to Andrew Pinski from comment #1)
> lower-subreg should have be able to help here.  I wonder why it did not ...

I'm not sure how it can help. When you write a part of a multi-register mode
using subreg, you get incorrect liveness info. This is why splitting 64-bit
types on 32-bit targets before register allocation gives such a huge gain.

The approach I used in other compilers was to generate multi-register virtual
registers using a single create operation rather than via multiple subreg
writes.


More information about the Gcc-bugs mailing list