Introduce 4-stages profiledbootstrap to get a better profile.

2017-06-19  Martin Liska  <mliska@suse.cz>

	* doc/install.texi: Document that PGO runs in 4 stages.
2017-06-19  Martin Liska  <mliska@suse.cz>

	* Makefile.def: Define 4 stages PGO bootstrap.
	* Makefile.tpl: Define FLAGS.
	* Makefile.in: Regenerate.

From-SVN: r249366
This commit is contained in:
Martin Liska 2017-06-19 15:19:56 +02:00 committed by Martin Liska
parent 871cc215f7
commit 0d053a49b6
6 changed files with 2719 additions and 57 deletions

View File

@ -1,3 +1,9 @@
2017-06-19 Martin Liska <mliska@suse.cz>
* Makefile.def: Define 4 stages PGO bootstrap.
* Makefile.tpl: Define FLAGS.
* Makefile.in: Regenerate.
2017-06-14 Ian Lance Taylor <iant@golang.org> 2017-06-14 Ian Lance Taylor <iant@golang.org>
* Makefile.def: Add check-gotools to go check targets. * Makefile.def: Add check-gotools to go check targets.

View File

@ -623,7 +623,10 @@ bootstrap_stage = {
bootstrap_stage = { bootstrap_stage = {
id=profile ; prev=1 ; }; id=profile ; prev=1 ; };
bootstrap_stage = { bootstrap_stage = {
id=feedback ; prev=profile ; id=train; prev=profile ;
bootstrap_target=profiledbootstrap ; };
bootstrap_stage = {
id=feedback ; prev=train;
bootstrap_target=profiledbootstrap ; }; bootstrap_target=profiledbootstrap ; };
bootstrap_stage = { bootstrap_stage = {
id=autoprofile ; prev=1 ; id=autoprofile ; prev=1 ;

File diff suppressed because it is too large Load Diff

View File

@ -455,8 +455,11 @@ STAGE1_CONFIGURE_FLAGS = --disable-intermodule $(STAGE1_CHECKING) \
STAGEprofile_CFLAGS = $(STAGE2_CFLAGS) -fprofile-generate STAGEprofile_CFLAGS = $(STAGE2_CFLAGS) -fprofile-generate
STAGEprofile_TFLAGS = $(STAGE2_TFLAGS) STAGEprofile_TFLAGS = $(STAGE2_TFLAGS)
STAGEfeedback_CFLAGS = $(STAGE3_CFLAGS) -fprofile-use STAGEtrain_CFLAGS = $(STAGE3_CFLAGS)
STAGEfeedback_TFLAGS = $(STAGE3_TFLAGS) STAGEtrain_TFLAGS = $(STAGE3_TFLAGS)
STAGEfeedback_CFLAGS = $(STAGE4_CFLAGS) -fprofile-use
STAGEfeedback_TFLAGS = $(STAGE4_TFLAGS)
STAGEautoprofile_CFLAGS = $(STAGE2_CFLAGS) -g STAGEautoprofile_CFLAGS = $(STAGE2_CFLAGS) -g
STAGEautoprofile_TFLAGS = $(STAGE2_TFLAGS) STAGEautoprofile_TFLAGS = $(STAGE2_TFLAGS)

View File

@ -1,3 +1,7 @@
2017-06-19 Martin Liska <mliska@suse.cz>
* doc/install.texi: Document that PGO runs in 4 stages.
2017-06-19 Martin Liska <mliska@suse.cz> 2017-06-19 Martin Liska <mliska@suse.cz>
PR ipa/80732 PR ipa/80732

View File

@ -2619,8 +2619,9 @@ bootstrap the compiler with profile feedback, use @code{make profiledbootstrap}.
When @samp{make profiledbootstrap} is run, it will first build a @code{stage1} When @samp{make profiledbootstrap} is run, it will first build a @code{stage1}
compiler. This compiler is used to build a @code{stageprofile} compiler compiler. This compiler is used to build a @code{stageprofile} compiler
instrumented to collect execution counts of instruction and branch instrumented to collect execution counts of instruction and branch
probabilities. Then runtime libraries are compiled with profile collected. probabilities. Training run is done by building @code{stagetrain}
Finally a @code{stagefeedback} compiler is built using the information collected. compiler. Finally a @code{stagefeedback} compiler is built
using the information collected.
Unlike standard bootstrap, several additional restrictions apply. The Unlike standard bootstrap, several additional restrictions apply. The
compiler used to build @code{stage1} needs to support a 64-bit integral type. compiler used to build @code{stage1} needs to support a 64-bit integral type.