This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/26854] Inordinate compile times on large routines
- From: "stevenb dot gcc at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 20 Dec 2007 15:08:18 -0000
- Subject: [Bug tree-optimization/26854] Inordinate compile times on large routines
- References: <bug-26854-271@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #44 from stevenb dot gcc at gmail dot com 2007-12-20 15:08 -------
Subject: Re: Inordinate compile times on large routines
On 20 Dec 2007 14:49:12 -0000, zadeck at naturalbridge dot com
<gcc-bugzilla@gcc.gnu.org> wrote:
>
>
> ------- Comment #43 from zadeck at naturalbridge dot com 2007-12-20 14:49 -------
> Subject: Re: Inordinate compile times on large
> routines
>
> lucier at math dot purdue dot edu wrote:
> > ------- Comment #42 from lucier at math dot purdue dot edu 2007-12-20 03:52 -------
> > Created an attachment (id=14799)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14799&action=view)
> --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14799&action=view)
> > --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14799&action=view)
> > memory details for an unpatched mainline
> >
> > Here is the same information without Steven's two patches for mainline.
> >
> >
> >
> Could you add the attached patch in and rerun your example?
>
> It will add 4 lines to indicate what kinds of def-use and use-def chains
> are being created.
> A lot of the space is being used by these chains and I want to find out
> how many of those chains are for artificial uses and defs.
>
> thanks
>
> kenny
> struct df_link *
> df_chain_create (struct df_ref *src, struct df_ref *dst)
> {
> struct df_link *head = DF_REF_CHAIN (src);
> - struct df_link *link = pool_alloc (df_chain->block_pool);;
> + struct df_link *link = pool_alloc (df_chain->block_pool);
> + int index = 0;
> +
> + if (!src->insn)
> + index += (src->type == DF_REF_REG_DEF) ? 2 : 1;
> + if (!dst->insn)
> + index += (src->type == DF_REF_REG_DEF) ? 2 : 1;
> +
> + df_chain_counters[index]++;
Watch for segfaults. Index will be 1, 2, 3, or 4.
df_chain_counters[4] does not exist.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26854