secondary_reload not called during IRA

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Sorry about spamming this mailing list, but I need an advice once again...
I've switched gcc branch from 4.3.6 to 4.6.1 for my backend, and I
have a new reload problem.

During the IRA pass, the following insn:

(insn 18 218 19 4 (set (subreg:SI (reg:DI 20 [ D.2998 ]) 4)
        (reg/v:SI 37 [ arg_a ])) ../.././gcc/dp-bit.c:1385 24 {movsi}
     (nil))


is transformed into :

(insn 18 253 254 4 (set (reg:SI 7 a0)
        (reg/v:SI 2 r2 [orig:37 arg_a ] [37]))
../.././gcc/dp-bit.c:1385 24 {movsi}
     (nil))

(insn 254 18 19 4 (set (mem/c:SI (plus:PSI (reg/f:PSI 12 a5)
                (const_int -16 [0xfffffffffffffff0])) [8 %sfp+-16 S4 A16])
        (reg:SI 7 a0)) ../.././gcc/dp-bit.c:1385 24 {movsi}
     (nil))


The problem is that my TARGET_SECONDARY_RELOAD is not called with last
mem rtx before reloading (and a0 class is not valid for memory moves)
and thus I cannot force the right reg class for such moves.
Do I miss something ?

Thanks,
Aurélien



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux