public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* question about DSE
@ 2009-09-08  9:57 Alex Turjan
  2009-09-08 10:25 ` Andrew Haley
  2009-09-08 10:55 ` Michael Matz
  0 siblings, 2 replies; 5+ messages in thread
From: Alex Turjan @ 2009-09-08  9:57 UTC (permalink / raw)
  To: gcc; +Cc: rsandifor, zadeck

Dear all,
Im writing to you regarding the dead store elimination (dse) which runs after register allocation. Apparently dse removes wrongly the following store (present in bb2):

(insn 374 47 52 2 test.c:107 (set (mem/c:SI (plus:PSI (reg/f:PSI 55 ptr15)
                (const_int 96 [0x60])) [19 fac_iter+0 S4 A32])
        (reg/v:SI 16 r16 [orig:161 step109 ] [161])) 48  {si_indexed_store_incl_ra} (nil))

despite being consumed (in bb3) by the following 2 loads:
(insn 380 71 64 3 test.c:112 (set (reg:HI 1 r1)
        (mem:HI (plus:PSI (reg/f:PSI 55 ptr15)
                (const_int 96 [0x60])) [0 S2 A16])) 12 {load} (nil))

(insn 382 346 65 3 test.c:112 (set (reg:HI 5 r5)
        (mem:HI (plus:PSI (reg/f:PSI 55 ptr15)
                (const_int 98 [0x62])) [0 S2 A16])) 12 {load} (nil))


Can anyone point what may be the problem?

As you can see the store is SI while the loads are HI. While looking to the comments from dse.c I get to the following remark:

" There are three cases where dse falls short:
     a) Reload sometimes creates the slot for one mode of access, and
     then inserts loads and/or stores for a smaller mode. "

Does it mean that such cases are not treated properly by dse?

I observed that if I run with the flag -fno-strict-aliasing the wrongly removed store is no longer removed and the code is runs correctly. 
Im wondering does the dse after register allocation make use of type based alias analysis? 

reagards,
Alex






      

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2009-09-09 17:59 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-08  9:57 question about DSE Alex Turjan
2009-09-08 10:25 ` Andrew Haley
2009-09-08 10:55 ` Michael Matz
2009-09-09 16:59   ` Alex Turjan
2009-09-09 17:59     ` Richard Henderson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).