public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Immediates propagated wrongly in stores
@ 2009-07-01 15:36 Jean Christophe Beyler
  2009-07-01 16:23 ` Richard Henderson
  0 siblings, 1 reply; 7+ messages in thread
From: Jean Christophe Beyler @ 2009-07-01 15:36 UTC (permalink / raw)
  To: gcc

Dear all,

I have this weird issue that I can't really understand:

In my architecture I do not have a store immediate into memory, I have
to go through a register.

However, the compiler is currently propagating constants into the
stores. So for example:

(insn 44 43 45 4 st3.c:21 (set (reg:DI 119)
        (const_int 1 [0x1])) -1 (nil))

(insn 45 44 46 4 st3.c:21 (set (mem/s:DI (reg:DI 109 [ ivtmp.43 ]) [2
data S8 A64])
        (reg:DI 119)) -1 (nil))

is transformed into :

(insn 46 44 48 3 st3.c:22 (set (mem/s:DI (reg:DI 109 [ ivtmp.43 ]) [2
data S8 A64])
        (const_int 1 [0x1])) 72 {movdi_internal1} (expr_list:REG_EQUAL
(const_int 1 [0x1])
        (nil)))


I tracked it down to the gcse pass. However, I thought I had turned
this off in the definition of a movdi in my machine description. But
apparently this is not sufficient, any ideas?

As always, thanks for your time,
Jean Christophe Beyler

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

end of thread, other threads:[~2009-07-06 17:16 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-07-01 15:36 Immediates propagated wrongly in stores Jean Christophe Beyler
2009-07-01 16:23 ` Richard Henderson
2009-07-01 18:28   ` Jean Christophe Beyler
2009-07-01 19:27     ` Richard Henderson
2009-07-01 21:02       ` Jean Christophe Beyler
2009-07-01 21:34         ` Richard Henderson
2009-07-06 17:16           ` Jean Christophe Beyler

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).