public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "mkuvyrkov at gcc dot gnu dot org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug middle-end/28071] [4.1 regression] A file that can not be compiled in reasonable time/space
Date: Wed, 10 Jan 2007 11:43:00 -0000	[thread overview]
Message-ID: <20070110114247.31170.qmail@sourceware.org> (raw)
In-Reply-To: <bug-28071-12846@http.gcc.gnu.org/bugzilla/>



------- Comment #55 from mkuvyrkov at gcc dot gnu dot org  2007-01-10 11:42 -------
Created an attachment (id=12879)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12879&action=view)
Patch for scheduler dependency lists.

Hi,

This patch introduces new dependency lists to scheduler thus making LOG_LINKs
not used in the schedulers.  The patch is preliminary and I will post an
updated version to gcc-patches in a few days.

The structure of a change:
As before, we have backward dependencies (INSN_DEPS - replacement for
LOG_LINKS) and forward dependencies (INSN_DEPEND).  These lists consist of
dep_nodes.
Each dep_node has a pointer to dep_data_node which contains dependency data
(data field), dep_node of the backward dep_list (back field) and dep_node of
the forward dep_list (forw field).  Thus we can easily get forward dep_node by
the backward one and vice versa.
Each dep_node also contains a pointer to the next field of the previous node in
the dep_list (to the place where pointer to it is stored) making removal from
the list fast and easy.

Changes are mostly just a pattern replacement of macros names.  Patched
compiler produces exactly the same output as original (except for one small
thing: removal of DEPS_LIST from rtl.def somehow results in different numbering
of the registers.  The same occurs if add an additional rtx description to
rtl.def.  Don't know why this happens, but will be glad if someone explained.)

Minimal changes to the backends were introduced.
1. ia64 scheduler hook adjust_cost was restored to its original version (as in
gcc 4.1)
2. ia64 and rs6000 backends were fixed to walk through the new dependency
lists, which they do for their own heuristics. (no other backend do that).
3. rs6000 scheduler hook is_costly_dependency () was changed so that there'll
be no need to do a compatibility transformation (as being done for adjust_cost,
btw) for a hook that is implemented on a single target.

The patch was bootstrapped on x86_64 and ia64.  Also I've build a cross to
powerpc-740.

Results (on x86_64):
scheduler2 is now 4s instead of 12s.
Memory consumption: 11.5M instead of 48M


Thanks,

Maxim


-- 


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


  parent reply	other threads:[~2007-01-10 11:43 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-17  9:27 [Bug c/28071] New: " raffalli at univ-savoie dot fr
2006-06-17  9:52 ` [Bug c/28071] " raffalli at univ-savoie dot fr
2006-06-17 10:57 ` steven at gcc dot gnu dot org
2006-06-17 11:06 ` steven at gcc dot gnu dot org
2006-06-17 14:30 ` steven at gcc dot gnu dot org
2006-06-17 14:56 ` [Bug middle-end/28071] [4.2 regression] " pinskia at gcc dot gnu dot org
2006-06-17 18:42 ` [Bug middle-end/28071] [4.1/4.2 " rguenth at gcc dot gnu dot org
2006-06-17 19:24 ` [Bug rtl-optimization/28071] " rguenth at gcc dot gnu dot org
2006-06-19  8:56 ` raffalli at univ-savoie dot fr
2006-07-17  2:45 ` mmitchel at gcc dot gnu dot org
2006-07-21 21:12 ` hubicka at gcc dot gnu dot org
2006-07-21 22:01 ` raffalli at univ-savoie dot fr
2006-07-22 13:47 ` hubicka at ucw dot cz
2006-07-22 17:13 ` hubicka at ucw dot cz
2006-07-22 18:09 ` hubicka at ucw dot cz
2006-07-22 19:30 ` hubicka at ucw dot cz
2006-07-22 20:51   ` Jan Hubicka
2006-07-22 20:51 ` hubicka at ucw dot cz
2006-07-24  0:05 ` patchapp at dberlin dot org
2006-07-24 11:24 ` hubicka at gcc dot gnu dot org
2006-07-24 11:28 ` hubicka at gcc dot gnu dot org
2006-07-24 11:54 ` hubicka at gcc dot gnu dot org
2006-07-25 18:20 ` patchapp at dberlin dot org
2006-07-26 22:52 ` hubicka at gcc dot gnu dot org
2006-07-27  7:15 ` patchapp at dberlin dot org
2006-07-27  7:20 ` patchapp at dberlin dot org
2006-07-27  7:25 ` patchapp at dberlin dot org
2006-07-27  8:00 ` patchapp at dberlin dot org
2006-07-27 16:02 ` hubicka at gcc dot gnu dot org
2006-07-27 16:03 ` hubicka at gcc dot gnu dot org
2006-07-27 17:10 ` hubicka at gcc dot gnu dot org
2006-07-28  9:30 ` patchapp at dberlin dot org
2006-07-28  9:41 ` hubicka at ucw dot cz
2006-07-29 13:15 ` hubicka at gcc dot gnu dot org
2006-07-30  5:45 ` patchapp at dberlin dot org
2006-08-11  7:17 ` ebotcazou at gcc dot gnu dot org
2006-08-16 21:25 ` [Bug middle-end/28071] " rakdver at gcc dot gnu dot org
2006-08-18 23:10 ` hubicka at ucw dot cz
2006-08-19  0:19 ` hubicka at ucw dot cz
2006-08-19  1:52 ` hubicka at ucw dot cz
2006-08-19 21:58 ` amacleod at redhat dot com
2006-08-20  0:58   ` Jan Hubicka
2006-08-20  0:59 ` hubicka at ucw dot cz
2006-08-21  0:00 ` hubicka at gcc dot gnu dot org
2006-08-21  1:42 ` hubicka at gcc dot gnu dot org
2006-08-21  2:59   ` Jan Hubicka
2006-08-21  2:59 ` hubicka at ucw dot cz
2006-08-21 12:56 ` hubicka at ucw dot cz
2006-08-21 17:11 ` hubicka at ucw dot cz
2006-08-25  1:37 ` amacleod at redhat dot com
2006-08-25  1:43 ` amacleod at redhat dot com
2006-08-25  1:57 ` amacleod at redhat dot com
2006-08-28 17:18 ` amacleod at gcc dot gnu dot org
2006-08-28 17:37 ` amacleod at redhat dot com
2006-09-12 10:11 ` hubicka at gcc dot gnu dot org
2006-09-23  9:44 ` steven at gcc dot gnu dot org
2006-09-23 10:22 ` [Bug middle-end/28071] [4.1 " rguenth at gcc dot gnu dot org
2007-01-10 11:43 ` mkuvyrkov at gcc dot gnu dot org [this message]
2007-01-15  7:19 ` zaks at il dot ibm dot com
2007-01-15  7:52   ` Maxim Kuvyrkov
2007-01-15  7:53 ` mkuvyrkov at ispras dot ru
2007-01-15 15:31 ` zaks at il dot ibm dot com
2007-01-18  9:52 ` hubicka at ucw dot cz
2007-02-06 22:05 ` hubicka at gcc dot gnu dot org
2007-02-06 22:15 ` hubicka at gcc dot gnu dot org
2007-03-26 15:50 ` bonzini at gnu dot org
2007-04-16 15:04 ` mkuvyrkov at gcc dot gnu dot org
2007-04-16 15:07 ` mkuvyrkov at gcc dot gnu dot org
2007-04-17 18:16 ` hubicka at gcc dot gnu dot org
2007-04-17 18:38 ` hubicka at ucw dot cz
2007-05-14 21:37 ` mmitchel at gcc dot gnu dot org
2007-05-14 21:49 ` fang at csl dot cornell dot edu
2007-07-20  3:47 ` mmitchel at gcc dot gnu dot org
2007-10-09 19:25 ` mmitchel at gcc dot gnu dot org
2007-11-03  8:07 ` ebotcazou at gcc dot gnu dot org
     [not found] <bug-28071-4@http.gcc.gnu.org/bugzilla/>
2023-07-28  8:40 ` cvs-commit at gcc dot gnu.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=20070110114247.31170.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).