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>
* Makefile.def: Add check-gotools to go check targets.

View File

@ -623,7 +623,10 @@ bootstrap_stage = {
bootstrap_stage = {
id=profile ; prev=1 ; };
bootstrap_stage = {
id=feedback ; prev=profile ;
id=train; prev=profile ;
bootstrap_target=profiledbootstrap ; };
bootstrap_stage = {
id=feedback ; prev=train;
bootstrap_target=profiledbootstrap ; };
bootstrap_stage = {
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_TFLAGS = $(STAGE2_TFLAGS)
STAGEfeedback_CFLAGS = $(STAGE3_CFLAGS) -fprofile-use
STAGEfeedback_TFLAGS = $(STAGE3_TFLAGS)
STAGEtrain_CFLAGS = $(STAGE3_CFLAGS)
STAGEtrain_TFLAGS = $(STAGE3_TFLAGS)
STAGEfeedback_CFLAGS = $(STAGE4_CFLAGS) -fprofile-use
STAGEfeedback_TFLAGS = $(STAGE4_TFLAGS)
STAGEautoprofile_CFLAGS = $(STAGE2_CFLAGS) -g
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>
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}
compiler. This compiler is used to build a @code{stageprofile} compiler
instrumented to collect execution counts of instruction and branch
probabilities. Then runtime libraries are compiled with profile collected.
Finally a @code{stagefeedback} compiler is built using the information collected.
probabilities. Training run is done by building @code{stagetrain}
compiler. Finally a @code{stagefeedback} compiler is built
using the information collected.
Unlike standard bootstrap, several additional restrictions apply. The
compiler used to build @code{stage1} needs to support a 64-bit integral type.