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> 2019-03-28 Martin Liska <mliska@suse.cz>
PR bootstrap/89829 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 +] \ "[+flag+]=$([+flag+])"[+ ENDIF optional+][+ ENDFOR flags_to_pass +][+ FOR bootstrap-stage +] \
"STAGE[+id+]_CFLAGS=$(STAGE[+id+]_CFLAGS)" \ "STAGE[+id+]_CFLAGS=$(STAGE[+id+]_CFLAGS)" \
"STAGE[+id+]_CXXFLAGS=$(STAGE[+id+]_CXXFLAGS)" \ "STAGE[+id+]_CXXFLAGS=$(STAGE[+id+]_CXXFLAGS)" \
"STAGE[+id+]_GENERATOR_CFLAGS=$(STAGE[+id+]_GENERATOR_CFLAGS)" \
"STAGE[+id+]_TFLAGS=$(STAGE[+id+]_TFLAGS)"[+ ENDFOR bootstrap-stage +] \ "STAGE[+id+]_TFLAGS=$(STAGE[+id+]_TFLAGS)"[+ ENDFOR bootstrap-stage +] \
$(CXX_FOR_TARGET_FLAG_TO_PASS) \ $(CXX_FOR_TARGET_FLAG_TO_PASS) \
"TFLAGS=$(TFLAGS)" \ "TFLAGS=$(TFLAGS)" \
@ -1193,6 +1194,7 @@ all-stage[+id+]-[+prefix+][+module+]: configure-stage[+id+]-[+prefix+][+module+]
CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \ CXXFLAGS="$(CXXFLAGS_FOR_TARGET)" \
LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"[+ ELSE prefix +] \ LIBCFLAGS="$(LIBCFLAGS_FOR_TARGET)"[+ ELSE prefix +] \
CFLAGS="$(STAGE[+id+]_CFLAGS)" \ CFLAGS="$(STAGE[+id+]_CFLAGS)" \
GENERATOR_CFLAGS="$(STAGE[+id+]_GENERATOR_CFLAGS)" \
CXXFLAGS="$(STAGE[+id+]_CXXFLAGS)"[+ IF prev +] \ CXXFLAGS="$(STAGE[+id+]_CXXFLAGS)"[+ IF prev +] \
LIBCFLAGS="$(STAGE[+id+]_CFLAGS)"[+ ELSE prev +] \ LIBCFLAGS="$(STAGE[+id+]_CFLAGS)"[+ ELSE prev +] \
LIBCFLAGS="$(LIBCFLAGS)"[+ ENDIF prev +][+ ENDIF prefix +] \ 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> 2019-03-02 Johannes Pfau <johannespfau@gmail.com>
* mh-mingw: Also set __USE_MINGW_ACCESS flag for C++ code. * 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> 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always * 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@ CXX_FOR_BUILD = @CXX_FOR_BUILD@
NO_PIE_CFLAGS_FOR_BUILD = @NO_PIE_CFLAGS_FOR_BUILD@ NO_PIE_CFLAGS_FOR_BUILD = @NO_PIE_CFLAGS_FOR_BUILD@
NO_PIE_FLAG_FOR_BUILD = @NO_PIE_FLAG_FOR_BUILD@ NO_PIE_FLAG_FOR_BUILD = @NO_PIE_FLAG_FOR_BUILD@
BUILD_CFLAGS= @BUILD_CFLAGS@ -DGENERATOR_FILE BUILD_CFLAGS= @BUILD_CFLAGS@ $(GENERATOR_CFLAGS) -DGENERATOR_FILE
BUILD_CXXFLAGS = @BUILD_CXXFLAGS@ -DGENERATOR_FILE BUILD_CXXFLAGS = @BUILD_CXXFLAGS@ $(GENERATOR_CFLAGS) -DGENERATOR_FILE
BUILD_NO_PIE_CFLAGS = @BUILD_NO_PIE_CFLAGS@ BUILD_NO_PIE_CFLAGS = @BUILD_NO_PIE_CFLAGS@
BUILD_CFLAGS += $(BUILD_NO_PIE_CFLAGS) BUILD_CFLAGS += $(BUILD_NO_PIE_CFLAGS)
BUILD_CXXFLAGS += $(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 the GCC middle end and back end are in @file{libbackend.a} this means
that only the front end is actually LTO optimized. 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} @item @samp{bootstrap-debug}
Verifies that the compiler generates the same executable code, whether Verifies that the compiler generates the same executable code, whether
or not it is asked to emit debug information. To this end, this or not it is asked to emit debug information. To this end, this