[Bug target/80540] gcc ICE at -O2 and above on x86_64-linux-gnu in "assign_by_spills"

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Apr 27 10:55:00 GMT 2017


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Well, register vars are not the main problem, the problem is using register
vars with registers that have special roles in the ISA (where some instructions
can only use those particular registers and nothing else).  %eax, %edx, %ecx,
%esp, %ebp, %xmm0, %esi, %edi, in 32-bit PIC code %ebx have such properties (of
course different instructions different regs).  For 32-bit code that is
obviously all the registers...  %esi/%edi for the string ops, we can avoid
those usually and open code, %xmm0 in some SSE/AVX insns, %ecx in shifts?,
%edx/%eax in some multiplications/divisions, extensions etc.


More information about the Gcc-bugs mailing list