This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFA: Fix other/44566


> > On Mon, 28 Jun 2010, Jan Hubicka wrote:
> > 
> > > Since we produce several binaries (one for each frontend, that is 6 binaries)
> > > and since we compile each twice to get in the checksum needed for PCH, we get
> > > backend build 13 times for stage2 and 13times for stage3.  So we speak about
> > > building backend 27 times instead of 3 that is considerable build time hit.
> > 
> > A multi-front-end binary (that uses a --front-end= option in argv[1] to 
> > decide which front end it is) shouldn't be hard to build, to save build 
> > time and reduce the size of multi-language binary distributions.  You'd 
> > lose devirtualization of langhooks - but since some langhooks are modified 
> > at runtime anyway, I don't know if devirtualization of langhooks actually 
> > works, and I expect devirtualization of target hooks to be much more 
> > significant for performance.
> 
> There is also alternative of getting incremental whopr to work cross 
> binaries - i.e. if frontend changes nothing in a partition, it can be
> used to build other binary.
> This is tricky, we probably would need server handling the known partitions
> to allow parallelizm that is something I definitly do not plan for next release.
> 
> I did some testing how much the partitions changes and at moment they do,
> there are still macros and things that get compiled into it. Especially
> concerning EH.
> 
> We do not devirtualize calls thruough static structures unless they are
> declared const.

Also we do devirtualize them just late, only turning indirect call to direct
call that has very little runtime effect on modern hardware.  Hopefully
ipa-prop infrastructure can be extended easilly to handle devirtualization
before inlining.

Honza


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]