------- Comment #6 from danglin at gcc dot gnu dot org  2008-02-18 15:23 -------
The testcase compiles with -fno-gcse.  However, the result from the gcse1
pass using the 4.2 branch is similar to that with 4.3.

In the greg dump with 4.3, we have:

(insn 957 956 958 132
../ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h:220 (set (reg/f:SI
735)
        (high:SI (symbol_ref:SI ("lock.8450") [flags 0x2] <var_decl 0x40605840
lock>))) 49 {*pa.md:3017} (expr_list:REG_EQUIV (high:SI (symbol_ref:SI
("lock.8450") [flags 0x2] <var_decl 0x40605840 lock>))
        (nil)))

(insn 958 957 1588 132
../ports/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h:220 (set (reg/f:SI
743)
        (lo_sum:SI (reg/f:SI 735)
            (symbol_ref:SI ("lock.8450") [flags 0x2] <var_decl 0x40605840
lock>))) 52 {*pa.md:3097} (expr_list:REG_EQUIV (symbol_ref:SI ("lock.8450")
[flags 0x2] <var_decl 0x40605840 lock>)
        (nil)))

In the 4.2 dump, we have:

(insn 1097 1096 1764 125 (set (reg:SI 1 %r1)
        (high:SI (symbol_ref:SI ("lock___8727") [flags 0x2] <var_decl
0x402ece18
 lock>))) 49 {*pa.md:2959} (nil)
    (expr_list:REG_EQUIV (high:SI (symbol_ref:SI ("lock___8727") [flags 0x2]
<va
r_decl 0x402ece18 lock>))
        (nil)))

(insn 1764 1097 1102 125 (set (reg/f:SI 18 %r18 [692])
        (reg:SI 1 %r1)) 37 {*pa.md:2484} (nil)
    (nil))

(insn 1102 1764 1098 125 (set (reg:SI 19 %r19 [574])
        (const_int 1 [0x1])) 37 {*pa.md:2484} (nil)
    (expr_list:REG_EQUIV (const_int 1 [0x1])
        (nil)))

(insn 1098 1102 1103 125 (set (reg/f:SI 10 %r10 [694])
        (lo_sum:SI (reg/f:SI 18 %r18 [692])
            (symbol_ref:SI ("lock___8727") [flags 0x2] <var_decl 0x402ece18
lock
>))) 52 {*pa.md:3039} (nil)
    (expr_list:REG_EQUIV (symbol_ref:SI ("lock___8727") [flags 0x2] <var_decl
0x
402ece18 lock>)
        (nil)))

Also, there is:

Reloads for insn # 1097
Reload 0: reload_out (SI) = (reg/f:SI 18 %r18 [692])
        R1_REGS, RELOAD_FOR_OUTPUT (opnum = 0)
        reload_out_reg: (reg/f:SI 18 %r18 [692])
        reload_reg_rtx: (reg:SI 1 %r1)

It seems like 4.3 is no longer doing the output reload.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35193

Reply via email to