bootstrap/8362: hard reg not substituted for all pseudos on PowerPC
Fri Oct 25 15:12:00 GMT 2002

>Number:         8362
>Category:       bootstrap
>Synopsis:       hard reg not substituted for all pseudos on PowerPC
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Oct 25 14:56:00 PDT 2002
>Release:        gcc version 3.2.1 20021024 (prerelease)
AIX bootstrap on the 3.2 branch ICEs while building
libstdc++-v3 with -mcpu=power option.  The
failure turns out to be more general and more serious
because I can reproduce it with a PowerPC compiler using
the string instructions, not POWER-specific instructions.
The ICE is in reload1.c:reload_combine_note_use() testing
that a REG is a hard register and not still a pseudo.  greg
dump file shows:

Reloads for insn # 1856
Reload 0: reload_in (SI) = (plus:SI (reg/f:SI 1 r1)
                                                    (const_int 520 [0x208]))
        BASE_REGS, RELOAD_FOR_INPUT (opnum = 2)
        reload_in_reg: (plus:SI (reg/f:SI 1 r1)
                                                    (const_int 520 [0x208]))
        reload_reg_rtx: (reg:SI 11 r11)

(insn 16488 1853 1856 (set (reg:SI 11 r11)
        (plus:SI (reg/f:SI 1 r1)
            (const_int 520 [0x208]))) 36 {*addsi3_internal1} (nil)

(insn 1856 16488 16458 (parallel[ 
            (set (reg:SI 4 r4)
                (mem/s:SI (reg:SI 11 r11) [0 S4 A128]))
            (set (reg:SI 5 r5)
                (mem/s:SI (plus:SI (reg/f:SI 929)
                        (const_int 4 [0x4])) [0 S4 A32]))
            (set (reg:SI 6 r6)
                (mem/s:SI (plus:SI (reg/f:SI 929)
                        (const_int 8 [0x8])) [0 S4 A64]))
            (set (reg:SI 7 r7)
                (mem/s:SI (plus:SI (reg/f:SI 929)
                        (const_int 12 [0xc])) [0 S4 A32]))
        ] ) 322 {*} (insn_list:REG_DEP_OUTPUT 1843 (insn_list:REG_
DEP_OUTPUT 1846 (insn_list 1842 (insn_list:REG_DEP_ANTI 1849 (nil)))))

r11 only was substituted for the pseudo in one location, not
the multiple locations in the instruction.
cd powerpc-ibm-aix4.3.3.0/libstdc++-v3/testsuite
gcc -mstring -O2 -c


More information about the Gcc-bugs mailing list