------- Comment #8 from sje at cup dot hp dot com  2010-02-02 17:49 -------
Using test case from comment #7, I compared r156291 and r156292 (plus the patch
from comment #6).  I compiled with -O1 and it looks like we go wrong during
common sub expression elimination.

r156291 has x.c.150r.cse1 with:

(insn 81 80 82 4 y.c:5 (set (reg:DI 156)
        (plus:DI (reg:DI 27 %r27) 
            (high:DI (symbol_ref/u:DI ("*L$C0000") [flags 0x2])))) 84
{*pa.md:2561} (nil))

(insn 82 81 83 4 y.c:5 (set (reg/f:DI 155)
        (mem/u/c:DI (lo_sum:DI (reg:DI 156)
                (unspec:DI [
                        (symbol_ref/u:DI ("*L$C0000") [flags 0x2])
                    ] 2)) [0 S8 A64])) 120 {*pa.md:4100} (expr_list:REG_EQUAL
(symbol_ref/u:DI ("*L$C0000") [flags 0x2])
        (nil)))

(insn 83 82 84 4 y.c:5 (set (reg:DF 157)
        (mem/u/c/i:DF (reg/f:DI 155) [0 S8 A64])) 118 {*pa.md:3933} (nil))



Where as r156292 (plus patch) has:

(insn 81 80 82 4 y.c:5 (set (reg:DI 156)
        (plus:DI (reg:DI 27 %r27)
            (high:DI (symbol_ref/u:DI ("*L$C0000") [flags 0x2])))) 84
{*pa.md:2561} (nil))

(insn 82 81 83 4 y.c:5 (set (reg/f:DI 155)
        (const_int 0 [0x0])) 120 {*pa.md:4100} (expr_list:REG_EQUAL
(symbol_ref/u:DI ("*L$C0000") [flags 0x2])
        (nil)))

(insn 83 82 84 4 y.c:5 (set (reg:DF 157)
        (mem/u/c/i:DF (reg/f:DI 155) [0 S8 A64])) 118 {*pa.md:3933} (nil))


-- 


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

Reply via email to