This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: Fix 7086
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: Mark Mitchell <mark at codesourcery dot com>
- Cc: Andreas Schwab <schwab at suse dot de>, gcc-patches at gcc dot gnu dot org, Richard dot Earnshaw at arm dot com
- Date: Mon, 24 Mar 2003 16:36:16 +0000
- Subject: Re: PATCH: Fix 7086
- Organization: ARM Ltd.
- Reply-to: Richard dot Earnshaw at arm dot com
> On Mon, 2003-03-24 at 02:58, Andreas Schwab wrote:
> > Mark Mitchell <mark at codesourcery dot com> writes:
> >
> > |> PR c++/7086 is a compilation-time issue. The problem is the quadratic
> > |> behavior in fixup_var_refs. This patch doesn't fix that problem, but
> > |> it does greatly reduce the number of calls to fixup_var_refs for the
> > |> test case in question, by observing that there is no need to do fixups
> > |> if you have just generated the RTL in question, since there will never
> > |> be anything to fix up.
> > |>
> > |> It should also be possible to fixup_var_refs run in linear time, but
> > |> that's for another day.
> > |>
> > |> On the test case in question, this patch improves the compilation time
> > |> from 2.5 minutes to 9 seconds.
> > |>
> > |> Bootstrapped and tested on i686-pc-linux-gnu, applied on the branch.
> > |> I'll apply on the mainline as soon as I confirm that it builds there.
> >
> > Breaks bootstrap on ia64. I'm not sure whether the calls in
> > config/ia64/ia64.c should get true or false as the new parameter, but true
> > is probably safe. Bootstrapping this patch now:
>
> Aw, shucks; I didn't think to look in the MD files for calls.
>
> Yes, the conservative choice is rescan=true.
>
> I will look for others.
Mark,
this patch is also breaking all native builds, triggering a warning that
is caught by werror. You can't have a bool as an argument with K&R-style
function definitions.
R.