On Mon, 2 May 2016, Jeff Law wrote:

> On 04/29/2016 05:36 AM, Richard Biener wrote:
> > On Thu, 28 Apr 2016, Jeff Law wrote:
> > 
> > > On 04/28/2016 02:49 AM, Richard Biener wrote:
> > > > 
> > > > The following prototype patch re-uses cc1-checksum.c from the
> > > > previous stage when compiling stage-final.  This eventually
> > > > allows to compare cc1 from the last two stages to fix the
> > > > lack of a true comparison when doing LTO bootstrap (it
> > > > compiles LTO bytecode from the compile-stage there, not the
> > > > final optimization result).
> > > > 
> > > > Bootstrapped on x86_64-unknown-linux-gnu.
> > > > 
> > > > When stripping gcc/cc1 and prev-gcc/cc1 after the bootstrap
> > > > they now compare identical (with LTO bootstrap it should
> > > > not require stripping as that doesn't do a bootstrap-debug AFAIK).
> > > > 
> > > > Is sth like this acceptable?  (consider it also done for
> > > > cp/Make-lang.in)
> > > > 
> > > > In theory we can compare all stage1 languages but I guess comparing
> > > > the required ones for a LTO bootstrap, cc1, cc1plus and lto1 would
> > > > be sufficient (or even just comparing one binary in which case
> > > > comparing lto1 would not require any patches).
> > > > 
> > > > This also gets rid of the annoying warning that cc1-checksum.o
> > > > differs (obviously).
> > > > 
> > > > Thanks,
> > > > Richard.
> > > > 
> > > > 2016-04-28  Richard Biener  <rguent...@suse.de>
> > > > 
> > > >         c/
> > > >         * Make-lang.in (cc1-checksum.c): For stage-final re-use
> > > >         the checksum from the previous stage.
> > > I won't object if you add a comment into the fragment indicating why
> > > you're
> > > doing this.
> > 
> > So the following is a complete patch (not considering people may
> > add objc or obj-c++ to stage1 languages).  Build with --disable-bootstrap,
> > bootstrapped and profilebootstrapped with verifying it works as
> > intended (looks like we don't compare with profiledbootstrap - huh,
> > we're building stagefeedback only once)
> > 
> > Ok for trunk?
> > 
> > Step 2 will now be to figure out how to also compare cc1 (for example)
> > when using bootstrap-lto ... (we don't want to do this unconditionally
> > as it is a waste of time when the objects are not only LTO bytecode).
> > 
> > Thanks,
> > Richard.
> > 
> > 2016-04-29  Richard Biener  <rguent...@suse.de>
> > 
> >     c/
> >     * Make-lang.in (cc1-checksum.c): For stage-final re-use
> >     the checksum from the previous stage.
> > 
> >     cp/
> >     * Make-lang.in (cc1plus-checksum.c): For stage-final re-use
> >     the checksum from the previous stage.
> LGTM.
> jeff

Thanks - applied as rev. 235804.

I'll now play with some way to add additional compare objects.  Thinking
of adding sth like

EXTRA_COMPARE_OBJS = lto1 cc1 cc1plus

to bootstrap-lto.mk for example.

Richard.

Reply via email to