This is the mail archive of the gcc-bugs@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]

Re: bb-reorder fix


On Tue, 23 Jan 2001, Jeffrey A Law wrote:

> GCC with the patch on the PA and verified that libstc++-v3 builds again
> (with some other patches which I haven't submitted yet).

Do your patces address the following sort of problem?

From exception_support.cc.18.lreg

==========
(insn 277 282 279 (set (reg:SI 134)
        (plus:SI (reg:SI 19 %r19)
            (high:SI (symbol_ref:SI ("_ZTISt13bad_exception"))))) 80 {*pa.md:2326} (nil)
    (nil))

(insn 279 277 281 (set (reg/v/f:SI 133)
        (mem/u:SI (lo_sum:SI (reg:SI 134)
                (unspec:SI[ 
                        (symbol_ref:SI ("_ZTISt13bad_exception"))
                    ]  0)) 0)) 82 {*pa.md:2352} (insn_list 277 (nil))
    (expr_list:REG_EQUIV (mem/u:SI (lo_sum:SI (reg:SI 134)
                (unspec:SI[ 
                        (symbol_ref:SI ("_ZTISt13bad_exception"))
                    ]  0)) 0)
        (expr_list:REG_DEAD (reg:SI 134)
            (nil))))

[snip at least one basic block, and a bit more]

(insn 311 307 309 (set (reg:SI 25 %r25)
        (reg/v/f:SI 133)) 69 {*pa.md:2099} (nil)
    (nil))
==========

gets turned into the following in .greg

==========
(note 277 282 279 NOTE_INSN_DELETED 0)

(note 279 277 281 NOTE_INSN_DELETED 2137548624)

[snip]

(insn 311 307 2729 (set (reg:SI 25 %r25)
        (mem/u:SI (lo_sum:SI (reg:SI 1 %r1 [134])
                (unspec:SI[ 
                        (symbol_ref:SI ("_ZTISt13bad_exception"))
                    ]  0)) 0)) 69 {*pa.md:2099} (nil)
    (nil))
==========

%r1 doesn't get set to the right value anywhere, and in any case is used
in the intervening instructions.  Seems to me like there's some confusion
resulting from the REG_DEAD and REG_EQUIV notes on insn 279 - If the
compiler is going to make use of REG_EQUIV it ought to ignore REG_DEAD and
vice versa.

Alan Modra
-- 
Linuxcare.  Support for the Revolution.


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