------- Comment #3 from jakub at gcc dot gnu dot org  2010-03-23 17:24 -------
Created an attachment (id=20173)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20173&action=view)
gcc45-pr43479-test.patch

This testcase is fixed on x86_64-linux by the PR19192 proposed patch (second or
third).
Unfortunately it still fails on i686-linux.  DEBUG_INSNs look sane in
*.asmcons:
(debug_insn 9 6 10 2 pr43479.c:8 (var_location:SI l (plus:SI (reg/v:SI 62 [ l
])
        (const_int 1 [0x1]))) -1 (nil))

(debug_insn 10 9 11 2 pr43479.c:10 (var_location:SI h (reg/v:SI 64 [ n ])) -1
(nil))

(debug_insn 11 10 12 2 pr43479.c:12 (var_location:SI i (reg/v:SI 61 [ k ])) -1
(nil))

(debug_insn 12 11 13 2 pr43479.c:13 (var_location:SI k (plus:SI (reg/v:SI 61 [
k ])
        (const_int 1 [0x1]))) -1 (nil))

(debug_insn 13 12 14 2 pr43479.c:17 (var_location:SI j (reg/v:SI 63 [ m ])) -1
(nil))

(debug_insn 14 13 15 2 pr43479.c:18 (var_location:SI m (plus:SI (reg/v:SI 63 [
m ])
        (const_int 1 [0x1]))) -1 (nil))

where all the pseudos are initialized like:
(insn 3 2 4 2 pr43479.c:7 (set (reg/v:SI 62 [ l ])
        (mem/c/i:SI (plus:SI (reg/f:SI 16 argp)
                (const_int 4 [0x4])) [0 l+0 S4 A32])) 47 {*movsi_1}
(expr_list:REG_EQUIV (mem/c/i:SI (plus:SI (reg/f:SI 16 argp)
                (const_int 4 [0x4])) [0 l+0 S4 A32])
        (nil)))

But in *.ira dump all 4 debug_insns are clobber (const_int 0), likely reload
doesn't figure out that it could use REG_EQUIV...


-- 


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

Reply via email to