public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Vladimir Makarov <vmakarov@redhat.com>
To: tm_gccmail@kloo.net
Cc: Steven Bosscher <stevenb@suse.de>, gcc@gcc.gnu.org
Subject: Re: Interesting paper from Perdue
Date: Tue, 21 Sep 2004 17:59:00 -0000	[thread overview]
Message-ID: <41505056.5060900@redhat.com> (raw)
In-Reply-To: <Pine.LNX.4.21.0409201620550.10945-100000@mail.kloo.net>

tm_gccmail@kloo.net wrote:

>On Mon, 20 Sep 2004, Steven Bosscher wrote:
>
>  
>
>>I don't know if anyone has ever seen/read/mentioned this paper
>>before, I might have missed it.  Otherwise, interesting reading:
>>https://engineering.purdue.edu/ECE/Research/TR/2004pdfs/TR-ECE-04-01.pdf
>>
>>Gr.
>>Steven
>>    
>>
>
>I'll digress and rant a bit; apologizes in advance.
>
>This is just the tip of the iceberg, really. There are many other 
>instances where various optimizations are improved in isolation and 
>degrade performance because they don't consider the effects on the other
>optimization passes.
>
>  
>
I think the approach mentioned in article has a merit for any compiler. 
 Any optimized compiler is bunch of pass because of complexity task. 
 Many passes are trying to solve subproblem not taking other passes into 
account.  It creates unpredictable compiler behaviour for given program 
when an optimization is on or off.

>...and the register allocator doesn't handle the increased register
>pressure well, so the net result is very little improvement.
>
>We really spend some time improving the foundation of GCC instead of
>piling more and more optimizations on top of it.
>
>  
>
I agree with this.  Gcc probably is a compiler with very upredictabe 
behaviour because inadequate register allocator/scheduler.  But writing 
a good register allocator is not easy task in gcc because of very rich 
register file model and a lot of machine-dependent macros used by gcc 
ports.  The colour-based register allocator project is an example of 
this.  I know about this because I worked on register allocator 
improvements and I am still working on it.  I think the key component is 
reload pass.  Tasks solved by reload should be combined with the 
register allocator.  We should rid off reload.  But it is an eneormous task.

Vlad


  reply	other threads:[~2004-09-21 16:01 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-20 13:31 Steven Bosscher
2004-09-21  7:21 ` tm_gccmail
2004-09-21 17:59   ` Vladimir Makarov [this message]
2004-09-21 18:39     ` Daniel Berlin
2004-09-21 16:01 ` Vladimir Makarov

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=41505056.5060900@redhat.com \
    --to=vmakarov@redhat.com \
    --cc=gcc@gcc.gnu.org \
    --cc=stevenb@suse.de \
    --cc=tm_gccmail@kloo.net \
    /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).