public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jan Hubicka <jh@suse.cz>
To: law@redhat.com
Cc: Andrew MacLeod <amacleod@redhat.com>, Jan Hubicka <jh@suse.cz>,
	gcc mailing list <gcc@gcc.gnu.org>,
	gcc-patches <gcc-patches@gcc.gnu.org>,
	Richard Henderson <rth@redhat.com>,
	Diego Novillo <dnovillo@redhat.com>
Subject: Re: [tree-ssa, RFC] CFG transparent RTL expansion
Date: Fri, 19 Dec 2003 17:44:00 -0000	[thread overview]
Message-ID: <20031219163914.GM6211@kam.mff.cuni.cz> (raw)
In-Reply-To: <200312191623.hBJGNtMA030130@speedy.slc.redhat.com>

> In message <1071801428.21456.162.camel@p4>, Andrew MacLeod writes:
>  >This implements something which isnt actually used yet (ie, no
>  >collection emitted/done). If I read it correctly, just a proof of
>  >concept of a persistant CFG. So lets skip to how it would actually be
>  >used. And excuse my lackof knowledge about how gcc collects profile info
>  >:-)
> Another potential use would be to detect when the tree->rtl lowering
> process creates new blocks.  This _may_ be interesting in that it may
> be an indication that rather than a block-local CSE we may want to run
> something a little more extensive.  

Even tought it is not obviously clean to me how this information will
help tunning CSE, I also do have also plans to taking advantage of CFG
during expansion and early optimization.

It would be interesting to consider RTL expansion as kind of
"optimization pass" more similar to code generation passes discussed in
literature that are not supposed to do only correct job, but also do not
produce ugly code.  Our current idea of "solve dificult problem of
expansion somehow and cleanup everything later" is definitly expensive.

For instance once RTL expansion is made cleaner, we may catch redudant
expressions and such during RTL production as suggested by Morgan book
(expanding flow graph).  He claims that local GVN embedded in the
expansion code produce very good savings in amount of generated
intermediate code.  Even tought his results are dificult to apply to our
situation, similar idea would work for us by hooking into optabs
expand_bin*

Similarly we do face problems where RTL expansion need more information
than is readilly available in pure GIMPLE.  For instance memcpy expander
shall consider the frequency (optimize for size or speed) the average
size of block and similar info to decide whether emit libcall, loop or
sequence of moves or combination of these.  This is not doable at all in
the later stages of RTL optimization.

Honza
> 
> If it's not obvious, I'm thinking about how we start trimming down the
> first stage RTL optimizers -- knowing if new blocks were created may be
> useful in determining which early RTL optimizers to run or what mode to
> run them in (block-local or extended-basic-blocks).
> 
> jeff
> 
> 

  reply	other threads:[~2003-12-19 16:39 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-12-19  5:37 Jan Hubicka
2003-12-19  6:50 ` Andrew MacLeod
2003-12-19 13:14   ` Jan Hubicka
2003-12-19 14:56     ` Jan Hubicka
2003-12-19 18:08     ` Andrew MacLeod
2003-12-19 19:11       ` Jan Hubicka
2003-12-19 19:51       ` Steven Bosscher
2003-12-31 22:57       ` Jan Hubicka
2004-01-20 18:32         ` Jan Hubicka
2004-01-21 15:58           ` Andrew MacLeod
2004-01-21 16:12             ` Diego Novillo
2004-01-21 18:05             ` Jan Hubicka
2004-01-22 15:07               ` Andrew MacLeod
2004-01-22 15:54                 ` Jan Hubicka
2004-01-22 19:33                 ` Zdenek Dvorak
2003-12-19 15:01   ` Jan Hubicka
2003-12-19 17:20   ` law
2003-12-19 17:44     ` Jan Hubicka [this message]
2003-12-19 18:15     ` Andrew MacLeod
2003-12-19 19:33       ` Jan Hubicka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20031219163914.GM6211@kam.mff.cuni.cz \
    --to=jh@suse.cz \
    --cc=amacleod@redhat.com \
    --cc=dnovillo@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=gcc@gcc.gnu.org \
    --cc=law@redhat.com \
    --cc=rth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).