diff options
author | Andi Kleen <ak@linux.intel.com> | 2014-09-01 16:41:28 +0000 |
---|---|---|
committer | Andi Kleen <ak@gcc.gnu.org> | 2014-09-01 16:41:28 +0000 |
commit | e04733ee53069a993a841bc0747c5c7290791230 (patch) | |
tree | 5101ad662599b9013f8ccaabee2c19dc2bf5ab54 /config | |
parent | b5617e5f69bdd5ad7a3da9b34d1871fb2aff940a (diff) | |
download | gcc-e04733ee53069a993a841bc0747c5c7290791230.tar.gz |
Support slim LTO bootstrap
Change the bootstrap-lto config file to use slim (non fat) LTO..
Speeds up the LTO bootstrap by ~18% on a 4 core system.
This requires using gcc-ar/ranlib in post stage 1 builds, so these
are passed to all sub builds.
config/:
2014-09-01 Andi Kleen <ak@linux.intel.com>
* bootstrap-lto.mk: Implement slim bootstrap.
/:
2014-09-01 Andi Kleen <ak@linux.intel.com>
* Makefile.tpl (POSTSTAGE1_HOST_EXPORTS): Add LTO_EXPORTS.
POSTSTAGE1_FLAGS_TO_PASS): Add LTO_FLAGS_TO_PASS.
* Makefile.in: Regenerate.
From-SVN: r214801
Diffstat (limited to 'config')
-rw-r--r-- | config/ChangeLog | 4 | ||||
-rw-r--r-- | config/bootstrap-lto.mk | 16 |
2 files changed, 15 insertions, 5 deletions
diff --git a/config/ChangeLog b/config/ChangeLog index 82c73bd5cde..a1653c6328a 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,7 @@ +2014-09-01 Andi Kleen <ak@linux.intel.com> + + * bootstrap-lto.mk: Implement slim bootstrap. + 2014-08-21 Bin Cheng <bin.cheng@arm.com> * isl.m4 (ISL_CHECK_VERSION): Check link of isl library diff --git a/config/bootstrap-lto.mk b/config/bootstrap-lto.mk index 27bad1529be..9e065e1d85a 100644 --- a/config/bootstrap-lto.mk +++ b/config/bootstrap-lto.mk @@ -1,7 +1,13 @@ -# This option enables LTO for stage2 and stage3. -# FIXME: Our build system is not yet able to use gcc-ar wrapper, so we need -# to go with -ffat-lto-objects. +# This option enables LTO for stage2 and stage3 in slim mode -STAGE2_CFLAGS += -flto=jobserver -frandom-seed=1 -ffat-lto-objects -STAGE3_CFLAGS += -flto=jobserver -frandom-seed=1 -ffat-lto-objects +STAGE2_CFLAGS += -flto=jobserver -frandom-seed=1 +STAGE3_CFLAGS += -flto=jobserver -frandom-seed=1 STAGEprofile_CFLAGS += -fno-lto + +# 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)" |