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
next prev 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: linkBe 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).