Bug 1542746 - use a static MOZ_PROFILE_ORDER_FILE; r=nalexander,chmanchester

We're planning on switching to IR-based profiling, so we can't use the
frontend-based instrumentation to collect the order in which functions
are executed...at least not during the build itself.  Performance tests
indicate that not having the order information decreases performance
significantly.  So we're going to check in static files for Win32 and
Win64 and use those to perform the ordering.  It's OK if these files are
slightly out of date; as of this writing, builds that generate and then
use these files complain that ~1/3 of the functions can't be found (!).
We're just trying to do something slightly smarter than whatever the
linker default is.

Differential Revision: https://phabricator.services.mozilla.com/D31132

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Nathan Froyd 2019-05-24 01:54:59 +00:00
Родитель 9398868673
Коммит 2b3a15afe9
4 изменённых файлов: 55197 добавлений и 3 удалений

Просмотреть файл

@ -191,7 +191,7 @@ profiledbuild::
$(MAKE) maybe_clobber_profiledbuild
$(call BUILDSTATUS,TIER_FINISH pgo_clobber)
$(call BUILDSTATUS,TIER_START pgo_profile_use)
$(MAKE) default MOZ_PROFILE_USE=1 $(if $(CLANG_CL),MOZ_PROFILE_ORDER_FILE=$(topobjdir)/cygprofile.txt)
$(MAKE) default MOZ_PROFILE_USE=1
$(call BUILDSTATUS,TIER_FINISH pgo_profile_use)
# Change default target to PGO build if PGO is enabled.

27436
build/win32/orderfile.txt Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

27753
build/win64/orderfile.txt Normal file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -9,7 +9,12 @@ include $(topsrcdir)/config/rules.mk
DUMP_SYMBOLS_FLAGS = --count-ctors
ifdef CLANG_CL
ifdef MOZ_PROFILE_ORDER_FILE
PGO_LDFLAGS += -ORDER:@$(MOZ_PROFILE_ORDER_FILE)
ifdef MOZ_PROFILE_USE
ifeq (x86,$(CPU_ARCH))
PGO_LDFLAGS += -ORDER:@$(topsrcdir)/build/win32/orderfile.txt
endif
ifeq (x86_64,$(CPU_ARCH))
PGO_LDFLAGS += -ORDER:@$(topsrcdir)/build/win64/orderfile.txt
endif
endif
endif