This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: status of IPA in gcc trunk?
- From: Ian Lance Taylor <iant at google dot com>
- To: howarth at bromo dot msbb dot uc dot edu (Jack Howarth)
- Cc: gcc at gcc dot gnu dot org
- Date: 08 Aug 2006 07:39:09 -0700
- Subject: Re: status of IPA in gcc trunk?
- References: <20060806223918.A28AC110009@bromo.msbb.uc.edu>
howarth@bromo.msbb.uc.edu (Jack Howarth) writes:
> Is there a wiki gcc page which accurately describes the
> current status of IPA in gcc trunk?
Not to my knowledge.
gcc trunk does support a type of Inter Procedural Analysis. It is
always done, when optimizing, within a single source file. There is
also the -combine option to do IPA across multiple files; it is
documented, but it only works for the C frontend, and has some
limitations. There is also an ongoing project to improve IPA across
multiple files; this project is known as LTO (Link Time Optimization).
> I have run across a
> fortran benchmark which exhibits a huge improvement from
> IPA when compiled on XL Fortran. I would like to attempt
> to use the current IPA support in gcc trunk with gfortran
> but it doesn't seem to be well documented. I was under the
> impression that the gcc IPA would require collection of
> profiling results which would then be used in a successive
> compilation to implement the IPA optimizations.
That is a procedure which I, at least, would probably not call IPA.
That sounds more like what I would call Feedback Direction
Optimization, FDO. gcc supports that, to a somewhat limited extended,
independently of using IPA. For FDO, look in the documentation for
-fprofile-generate and -fprofile-use.
> ps Does each front-end have to be modified to use IPA or
> will they automatically use it once it is added to gcc
> trunk?
Each front end will have to be modified to use IPA. No front end
modifications are required to use FDO.
Hope this helps.
Ian