public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "vmakarov at redhat dot com" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug rtl-optimization/37534] [4.4 Regression] IRA causes 17% degradation in 187.facerec benchmark
Date: Tue, 03 Feb 2009 14:48:00 -0000	[thread overview]
Message-ID: <20090203144810.16517.qmail@sourceware.org> (raw)
In-Reply-To: <bug-37534-16550@http.gcc.gnu.org/bugzilla/>



------- Comment #11 from vmakarov at redhat dot com  2009-02-03 14:48 -------
I have a patch (a new spill heuristic) which makes facerec even faster with IRA
on power6.  The patch is in

http://gcc.gnu.org/ml/gcc-patches/2008-11/msg00368.html

Unfortunately the new spill heuristic results in worse SPECINT2000 scores for
x86, x86_64.  So I did not committed the patch.

Facerec has one very hot (80%) function localmove::graphRoutines.f90 and
there is only one hot loop in the function.  Although the loop is
pretty big because of inlining TopCostFct.  The loop contains a few
if-statements and several big switch-statements.  But only a small part of
the loop body is hot.  Static branch prediction makes very inaccurate results
in this case and the old RA accidentally generates a better code than IRA.

 This is classical example of heuristic approach drawback.  You never
get best code using one heuristic for all programs.  Sometimes the old
RA will generate better code especially when the static branch probability
prediction is bad.  What are goal should be is to achieve
better or not worse code in "average", i.e. for some credible benchmark like
SPECFP2000 and IRA is successful in this. 

I am still working on some better spill heuristics.  Classical graph coloring
spill heuristics are bad and IMHO they should be based on register pressure not
on number of allocnos conflicting with allocno being spilled.

I don't think the problem will be solved for gcc4.4 but it might be solved for
gcc 4.5.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37534


  parent reply	other threads:[~2009-02-03 14:48 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-15 23:45 [Bug tree-optimization/37534] New: " luisgpm at linux dot vnet dot ibm dot com
2008-09-15 23:47 ` [Bug tree-optimization/37534] " luisgpm at linux dot vnet dot ibm dot com
2008-09-15 23:50 ` pinskia at gcc dot gnu dot org
2008-09-15 23:51 ` pinskia at gcc dot gnu dot org
2008-09-16  1:05 ` [Bug rtl-optimization/37534] " pinskia at gcc dot gnu dot org
2008-09-16  1:16 ` pinskia at gcc dot gnu dot org
2008-09-16  1:31 ` pinskia at gcc dot gnu dot org
2008-09-16  2:28 ` luisgpm at linux dot vnet dot ibm dot com
2008-09-16 13:02 ` rguenth at gcc dot gnu dot org
2008-10-22  3:11 ` mmitchel at gcc dot gnu dot org
2008-10-22 14:01 ` vmakarov at redhat dot com
2009-02-03  9:46 ` bonzini at gnu dot org
2009-02-03 14:48 ` vmakarov at redhat dot com [this message]
2009-02-03 14:56 ` bonzini at gnu dot org
2009-02-03 14:57 ` bonzini at gnu dot org
2009-04-21 16:02 ` [Bug rtl-optimization/37534] [4.4/4.5 " jakub at gcc dot gnu dot org
2009-07-22 10:35 ` jakub at gcc dot gnu dot org
2009-10-15 12:58 ` jakub at gcc dot gnu dot org
2010-01-21 13:19 ` jakub at gcc dot gnu dot org
2010-04-30  8:56 ` [Bug rtl-optimization/37534] [4.4/4.5/4.6 " jakub at gcc dot gnu dot org

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=20090203144810.16517.qmail@sourceware.org \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /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).