------- Comment #7 from sergeid at il dot ibm dot com  2008-12-04 17:54 -------
Subject: Re:  TreeSSA-PRE load after store
 misoptimization

You're right, it worked for me only on powerpc. This is RTL snippet
_before_ elimination (load + xor + store):

...
(insn 20 19 21 5 ../loop.c:10 (set (reg:SI 128)
        (mem:SI (reg/v/f:SI 123 [ res ]) [2 S4 A32])) 324
{*movsi_internal1} (nil))

(insn 21 20 22 5 ../loop.c:10 (set (reg:SI 129)
        (xor:SI (reg:SI 128)
            (const_int 234 [0xea]))) 139 {*boolsi3_internal1} (nil))

(insn 22 21 23 5 ../loop.c:10 (set (mem:SI (reg/v/f:SI 123 [ res ]) [2 S4
A32])
        (reg:SI 129)) 324 {*movsi_internal1} (nil)):
...


And this is _after_ (xor + store only):
...
(insn 21 19 22 5 ../loop.c:10 (set (reg:SI 131)
        (xor:SI (reg:SI 131)
            (const_int 234 [0xea]))) 139 {*boolsi3_internal1}
(expr_list:REG_DEAD (reg:SI 131)
        (nil)))

(insn 22 21 23 5 ../loop.c:10 (set (mem:SI (reg/v/f:SI 123 [ res ]) [2 S4
A32])
        (reg:SI 131)) 324 {*movsi_internal1} (expr_list:REG_DEAD (reg:SI
129)])
        (nil)))
...

On x86 it produces complex set instructions:
...
(insn 18 17 19 5 ../loop.c:10 (parallel [
            (set (mem:SI (reg/v/f:DI 62 [ res ]) [2 S4 A32])
                (xor:SI (mem:SI (reg/v/f:DI 62 [ res ]) [2 S4 A32])
                    (const_int 234 [0xea])))
            (clobber (reg:CC 17 flags))
        ]) 417 {*xorsi_1} (expr_list:REG_UNUSED (reg:CC 17 flags)])
        (nil)))
...
and that's why (probably) GCSE can't optimize it.


PS. BTW, I _do_ compile it with "-O3" and tree PRE doesn't catch it.


"steven at gcc dot gnu dot org" <[EMAIL PROTECTED]> wrote on
04/12/2008 19:08:57:

> I do not see RTL PRE catch this on ia64, with or without -fgcse-las.
>
> Can you show, please, the RTL dumps before and after GCSE?
>
>
> --
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38401
>
> ------- You are receiving this mail because: -------
> You reported the bug, or are watching the reporter.


-- 


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

Reply via email to