This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: compiling very large functions.
- From: "Daniel Berlin" <dberlin at dberlin dot org>
- To: "Eric Botcazou" <ebotcazou at adacore dot com>
- Cc: gcc at gcc dot gnu dot org, "Steven Bosscher" <stevenb dot gcc at gmail dot com>, "Richard Guenther" <richard dot guenther at gmail dot com>, "Kenneth Zadeck" <zadeck at naturalbridge dot com>, "Paolo Bonzini" <paolo dot bonzini at lu dot unisi dot ch>, "Hubicha, Jan" <jh at suse dot cz>, "Ian Lance Taylor" <ian at airs dot com>, "Novillo, Diego" <dnovillo at redhat dot com>
- Date: Sun, 5 Nov 2006 15:15:05 -0500
- Subject: Re: compiling very large functions.
- References: <454CF559.3090701@naturalbridge.com> <200611051804.20657.ebotcazou@adacore.com> <4aca3dc20611051104s6b81e8e5y28d4f44e8d1fafe2@mail.gmail.com> <200611052103.37591.ebotcazou@adacore.com>
On 11/5/06, Eric Botcazou <ebotcazou@adacore.com> wrote:
> > Tree alias analysis can partially disable itself though:
>
> No, it can't. Tree alias representation can :)
I presume you're thinking of the pass that performs the analysis, while I was
more thinking of the global machinery; my understanding is that the machinery
will not be able to disambiguate memory accesses it would have been able to,
if the limit were not reached.
Depends on what you mean by "the machinery". There is no standard API
to using the results of the analysis without using the representation
we provide, but some passes do it anyway through hackery, so yes and
no :)
> it is also not really partially disabling. It's really fully disabling
> in 99% of
Partially because it only affects call-clobbered variables IIUC.
It affects all variables that escape or are non-local, which is
roughly all variables that have interesting aliasing properties (IE
those that cannot be ascertained trivially).
Anyway, I would certainly not hold up what we do in alias
representation as a good example of proper throttling in the case of
large functions.