This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GCC 3.2 branch libstdc++ abi_check.cc bootstrap failure on AIX


On Fri, Oct 25, 2002 at 06:32:01PM -0400, David Edelsohn wrote:
> 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 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 {*rs6000.md:8737}

Note that there is only one input reload because there is only one
operand visible to reload.  It's an unfortunate fact that match_parallel
cannot work with arbitrary instructions before reload.

This was "solved" in the ARM backend by using separate patterns for
2 to 4 input registers.


r~


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]