From 72589062a301d984e9aef85c6411ac116ca9bbf5 Mon Sep 17 00:00:00 2001 From: "sebmarchand@chromium.org" Date: Fri, 14 Mar 2014 16:48:30 +0000 Subject: Add PGO targets to Chrome. This allows to do a PGO optimized build of Chrome with the following commands: python build\gyp_chromium -Dchrome_pgo_phase=1 ninja -C out\Release chrome run with '--no-sandbox' + pgosweep python build\gyp_chromium -Dchrome_pgo_phase=2 ninja -C out\Release chrome ----- Approach that didn't worked ----- (see comment #13 to know why this didn't work) Instead of having the following gyp dependency chain (for a regular build), here '->' means 'depends on': 'chrome'->|'chrome_main_dll' ----------|'chrome_child_dll' we know have the following one (when chrome_pgo==1): 'chrome'->|'chrome_main_dll' |->'chrome_pgo_optimize'->|'chrome_main_dll_pgi' ----------|'chrome_child_dll'|-------------------------|'chrome_child_dll_pgi' The '*_pgi' target correspond to the instrumented dll, the name of the DLLs produced by target will be terminated by '_pgi'. During the 'chrome_pgo_optimize' step the instrumented DLLs will be renamed (the '_pgi' suffix will be removed) and Chrome will be run against a set of profile test cases, pgosweep.exe will also be invoked to collect the instrumentation data. Then the main targets ('chrome_main_dll' and 'chrome_child_dll') will be linked with the flag /LTCG:PGOPTIMIZE, this will produce the optimized DLLs. -------------------------------------------- R=scottmg@chromium.org BUG= Review URL: https://codereview.chromium.org/187813008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257133 0039d316-1c4b-4281-b951-d872f2087c98 --- build/internal/release_impl_official.gypi | 1 - 1 file changed, 1 deletion(-) (limited to 'build/internal') diff --git a/build/internal/release_impl_official.gypi b/build/internal/release_impl_official.gypi index d084ae3..d0729a9 100644 --- a/build/internal/release_impl_official.gypi +++ b/build/internal/release_impl_official.gypi @@ -31,7 +31,6 @@ # headroom as of Dec 16, 2011. '/expectedoutputsize:41943040', ], - 'LinkTimeCodeGeneration': '1', # The /PROFILE flag causes the linker to add a "FIXUP" debug stream to # the generated PDB. According to MSDN documentation, this flag is only # available (or perhaps supported) in the Enterprise (team development) -- cgit v1.1