Come up with bootstrap-lto-lean config.

2019-04-09  Martin Liska  <mliska@suse.cz>

	* Makefile.in: Regenerate.
	* Makefile.tpl: Pass GENERATOR_CFLAGS
	in all stages.
2019-04-09  Martin Liska  <mliska@suse.cz>

	* bootstrap-lto-lean.mk: New file.
2019-04-09  Martin Liska  <mliska@suse.cz>

	* Makefile.in: Use GENERATOR_CFLAGS for all generators.
	* doc/install.texi: Document the new config.

From-SVN: r270223
This commit is contained in:
Martin Liska 2019-04-09 10:49:14 +02:00 committed by Martin Liska
parent 6c0b8df123
commit 1c67e69c0d
8 changed files with 248 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2019-04-09 Martin Liska <mliska@suse.cz>
* Makefile.in: Regenerate.
* Makefile.tpl: Pass GENERATOR_CFLAGS
in all stages.
2019-03-28 Martin Liska <mliska@suse.cz>
PR bootstrap/89829

File diff suppressed because it is too large Load Diff

View File

@ -624,6 +624,7 @@ BASE_FLAGS_TO_PASS =[+ FOR flags_to_pass +][+ IF optional +] \
"[+flag+]=$([+flag+])"[+ ENDIF optional+][+ ENDFOR flags_to_pass +][+ FOR bootstrap-stage +] \
"STAGE[+id+]_CFLAGS=$(STAGE[+id+]_CFLAGS)" \
"STAGE[+id+]_CXXFLAGS=$(STAGE[+id+]_CXXFLAGS)" \
"STAGE[+id+]_GENERATOR_CFLAGS=$(STAGE[+id+]_GENERATOR_CFLAGS)" \
"STAGE[+id+]_TFLAGS=$(STAGE[+id+]_TFLAGS)"[+ ENDFOR bootstrap-stage +] \
$(CXX_FOR_TARGET_FLAG_TO_PASS) \
"TFLAGS=$(TFLAGS)" \
@ -1193,6 +1194,7 @@ all-stage[+id+]-[+prefix+][+module+]: configure-stage[+id+]-[+prefix+][+module+]
CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"[+ ELSE prefix +] \
CFLAGS="$(STAGE[+id+]_CFLAGS)" \
GENERATOR_CFLAGS="$(STAGE[+id+]_GENERATOR_CFLAGS)" \
CXXFLAGS="$(STAGE[+id+]_CXXFLAGS)"[+ IF prev +] \
LIBCFLAGS="$(STAGE[+id+]_CFLAGS)"[+ ELSE prev +] \
LIBCFLAGS="$(LIBCFLAGS)"[+ ENDIF prev +][+ ENDIF prefix +] \

View File

@ -1,3 +1,7 @@
2019-04-09 Martin Liska <mliska@suse.cz>
* bootstrap-lto-lean.mk: New file.
2019-03-02 Johannes Pfau <johannespfau@gmail.com>
* mh-mingw: Also set __USE_MINGW_ACCESS flag for C++ code.

View File

@ -0,0 +1,16 @@
# This option enables LTO for stage4 and LTO for generators in stage3 with profiledbootstrap.
# Otherwise, LTO is used in only stage3.
STAGE3_CFLAGS += -flto=jobserver
STAGEtrain_GENERATOR_CFLAGS += -flto=jobserver
STAGEfeedback_CFLAGS += -flto=jobserver
# assumes the host supports the linker plugin
LTO_AR = $$r/$(HOST_SUBDIR)/prev-gcc/gcc-ar$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/
LTO_RANLIB = $$r/$(HOST_SUBDIR)/prev-gcc/gcc-ranlib$(exeext) -B$$r/$(HOST_SUBDIR)/prev-gcc/
LTO_EXPORTS = AR="$(LTO_AR)"; export AR; \
RANLIB="$(LTO_RANLIB)"; export RANLIB;
LTO_FLAGS_TO_PASS = AR="$(LTO_AR)" RANLIB="$(LTO_RANLIB)"
do-compare = /bin/true

View File

@ -1,3 +1,8 @@
2019-04-09 Martin Liska <mliska@suse.cz>
* Makefile.in: Use GENERATOR_CFLAGS for all generators.
* doc/install.texi: Document the new config.
2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always

View File

@ -785,8 +785,8 @@ CC_FOR_BUILD = @CC_FOR_BUILD@
CXX_FOR_BUILD = @CXX_FOR_BUILD@
NO_PIE_CFLAGS_FOR_BUILD = @NO_PIE_CFLAGS_FOR_BUILD@
NO_PIE_FLAG_FOR_BUILD = @NO_PIE_FLAG_FOR_BUILD@
BUILD_CFLAGS= @BUILD_CFLAGS@ -DGENERATOR_FILE
BUILD_CXXFLAGS = @BUILD_CXXFLAGS@ -DGENERATOR_FILE
BUILD_CFLAGS= @BUILD_CFLAGS@ $(GENERATOR_CFLAGS) -DGENERATOR_FILE
BUILD_CXXFLAGS = @BUILD_CXXFLAGS@ $(GENERATOR_CFLAGS) -DGENERATOR_FILE
BUILD_NO_PIE_CFLAGS = @BUILD_NO_PIE_CFLAGS@
BUILD_CFLAGS += $(BUILD_NO_PIE_CFLAGS)
BUILD_CXXFLAGS += $(BUILD_NO_PIE_CFLAGS)

View File

@ -2529,6 +2529,12 @@ static libraries are not compiled with link-time optimizations. Since
the GCC middle end and back end are in @file{libbackend.a} this means
that only the front end is actually LTO optimized.
@item @samp{bootstrap-lto-lean}
This option is similar to @code{bootstrap-lto}, but is intended for
faster build by only using LTO in the final bootstrap stage.
With @samp{make profiledbootstrap} the LTO frontend
is trained only on generator files.
@item @samp{bootstrap-debug}
Verifies that the compiler generates the same executable code, whether
or not it is asked to emit debug information. To this end, this