public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* df.c and cond_exec question
@ 2004-09-23  1:40 Steve Ellcey
  2004-09-23  8:48 ` Richard Henderson
  2004-09-23 12:11 ` Steven Bosscher
  0 siblings, 2 replies; 3+ messages in thread
From: Steve Ellcey @ 2004-09-23  1:40 UTC (permalink / raw)
  To: gcc

While experimenting with the IA64 divide sequences (which generate a
series of cond_exec instructions) I found that df_analyze does not seem
to have any code in it to handle cond_exec instructions.  This causes
problems if I expand the divide instruction sequence earlier in the GCC
process then before because the web phase of the RTL optimizer uses
df_analyze and df_analyze's inability to understand cond_exec causes
some definitions/uses to be missed in the analysis and bad code to be
generated.

I want to look into adding code to df_analyze to handle cond_exec but I
thought I would send an email first and make sure that df.c isn't
something that is going to become obsolete soon due to the SSA work or
that there isn't some other reason why handling cond_exec instructions
in df_analyze is a bad idea or impractical.  I see uses of df_analyze in
loop-invariant.c, modulo-sched.c, ra.c, and web.c so I don't think it
is going away soon.

Any comments?

Steve Ellcey
sje@cup.hp.com

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

* Re: df.c and cond_exec question
  2004-09-23  1:40 df.c and cond_exec question Steve Ellcey
@ 2004-09-23  8:48 ` Richard Henderson
  2004-09-23 12:11 ` Steven Bosscher
  1 sibling, 0 replies; 3+ messages in thread
From: Richard Henderson @ 2004-09-23  8:48 UTC (permalink / raw)
  To: Steve Ellcey; +Cc: gcc

On Wed, Sep 22, 2004 at 04:58:05PM -0700, Steve Ellcey wrote:
> ... This causes
> problems if I expand the divide instruction sequence earlier in the GCC
> process then before because the web phase ...

Reload doesn't handle cond_exec, therefore you cannot expand to
cond_exec earlier than that.

The main issue is that any reloads needed by the instruction other
than the cond_exec conditional itself also need to be predicated.


r~

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

* Re: df.c and cond_exec question
  2004-09-23  1:40 df.c and cond_exec question Steve Ellcey
  2004-09-23  8:48 ` Richard Henderson
@ 2004-09-23 12:11 ` Steven Bosscher
  1 sibling, 0 replies; 3+ messages in thread
From: Steven Bosscher @ 2004-09-23 12:11 UTC (permalink / raw)
  To: sje, gcc

On Thursday 23 September 2004 01:58, Steve Ellcey wrote:
> I want to look into adding code to df_analyze to handle cond_exec but I
> thought I would send an email first and make sure that df.c isn't
> something that is going to become obsolete soon due to the SSA work or
> that there isn't some other reason why handling cond_exec instructions
> in df_analyze is a bad idea or impractical.  I see uses of df_analyze in
> loop-invariant.c, modulo-sched.c, ra.c, and web.c so I don't think it
> is going away soon.

I was actually hoping we can use df.c in more passes.  Right now we
have many passes with their own little data flow analyzer.  Sharing
one df module among all passes is a *good* thing.  For example, you
would add cond_exec support and all passes using it would know about
it.

Unfortunately, cond_execs are not generated until after reload, that
probably means that all passes before reload (and reload itself?) do
not understand them...

Gr.
Steven


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

end of thread, other threads:[~2004-09-23  9:24 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-09-23  1:40 df.c and cond_exec question Steve Ellcey
2004-09-23  8:48 ` Richard Henderson
2004-09-23 12:11 ` Steven Bosscher

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