Stage1 compiler miscompiles Ada on ia64

Richard Kenner kenner@vlsi1.ultra.nyu.edu
Sun Dec 30 14:49:00 GMT 2001


    (insn 3619 3618 2549 (set (reg:DI 9 r9)
            (mem:DI (reg:DI 18 r18) [67 S8 A64])) 6 {*movdi_internal} (insn_list 3617 (nil))
        (expr_list:REG_DEAD (reg:DI 18 r18)
            (nil)))

    (insn 2549 3619 3701 (use (reg/i:TI 8 r8)) -1 (insn_list 3618 (nil))
        (expr_list:REG_DEAD (reg:DI 9 r9)
            (nil)))

    (note 3701 2549 3704 NOTE_INSN_EPILOGUE_BEG)
        [...]
    (insn 3730 3728 3732 (set (reg:DI 9 r9)
            (mem:DI (post_modify:DI (reg:DI 28 r28)
                    (plus:DI (reg:DI 28 r28)
                        (const_int 16 [0x10]))) [68 S8 A64])) -1 (insn_list 3726 (nil))
            (expr_list:REG_INC (reg:DI 28 r28)
            (nil)))

    The basic problem seems to be that insn 2549 marks register r9 as dead.

But is *is* dead there: insn 3730 sets it without referencing it.
That seems the more direct cause of the problem, but you're not giving
enough information to be sure.



More information about the Gcc mailing list