This is the mail archive of the
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>
email@example.com (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
Each front end will have to be modified to use IPA. No front end
modifications are required to use FDO.
Hope this helps.