|
|
DescriptionEnable incremental linking for static_library too
Timings on z620:
Without:
GYP_DEFINES=component=static_library chromium_win_pch=0 incremental_chrome_dll=0
touch content\app\main.cc (causes chrome.dll, chrome_child.dll, and unit_tests.exe to relink)
tim ninja -C out\Release unit_tests
[19/19] LINK_EMBED unit_tests.exe
real: 4m46.828s
With:
GYP_DEFINES=component=static_library branding=Chrome chromium_win_pch=0 incremental_chrome_dll=1
touch content\app\content_main.cc && tim ninja -C out\Release unit_tests
ninja: Entering directory `out\Release'
[19/19] LINK_EMBED unit_tests.exe
real: 0m43.625s
This is basically best case, and the actual performance on bots will differ based on
their config and the number of files that change from run-to-run, but it seems worth
enabling to see what happens, at least.
R=jam@chromium.org
BUG=404809, 402270
Committed: https://crrev.com/6922bc1d4b0a2f4604598082a877d3add6d86d1c
Cr-Commit-Position: refs/heads/master@{#295786}
Patch Set 1 #Patch Set 2 : turn on #
Messages
Total messages: 32 (3 generated)
lgtm, looks great, thanks.
The CQ bit was checked by scottmg@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/scottmg@chromium.org/502993005/20001
The CQ bit was unchecked by scottmg@chromium.org
The CQ bit was checked by scottmg@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/scottmg@chromium.org/502993005/20001
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: win_gpu on tryserver.chromium.gpu (http://build.chromium.org/p/tryserver.chromium.gpu/builders/win_gpu/builds/52124) win_chromium_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_...) win_chromium_x64_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...)
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: win_chromium_x64_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...)
Patchset #3 (id:40001) has been deleted
The CQ bit was checked by scottmg@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/scottmg@chromium.org/502993005/20001
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: win_chromium_x64_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...)
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: win_chromium_x64_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...)
The CQ bit was checked by scottmg@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/scottmg@chromium.org/502993005/20001
FYI, CQ is re-trying this CL (attempt #1). The failing builders are: win_chromium_x64_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...)
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: win_chromium_x64_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...)
The CQ bit was checked by scottmg@chromium.org
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/scottmg@chromium.org/502993005/20001
The CQ bit was unchecked by commit-bot@chromium.org
Try jobs failed on following builders: win_chromium_x64_rel_swarming on tryserver.chromium.win (http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...)
At long last, crbug.com/251251 is addressed (the win x64 try failure), so I'm going to land this now and we can see if it helps the Win compile/link cycle time.
The CQ bit was checked by scottmg@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/502993005/20001
Message was sent while issue was closed.
Committed patchset #2 (id:20001) as bcf20d36d904f2adb48e509cd9aeb2664b7b89f4
Message was sent while issue was closed.
Failed to apply patch for build/common.gypi: While running git apply --index -p1; error: patch failed: build/common.gypi:1903 error: build/common.gypi: patch does not apply Patch: build/common.gypi Index: build/common.gypi diff --git a/build/common.gypi b/build/common.gypi index d5d5a5960c02e9602d9f23ee3c5ab6f2aa6fe43c..f7d82a1f01e21ddee004f458e83754ab69c6d145 100644 --- a/build/common.gypi +++ b/build/common.gypi @@ -1903,11 +1903,11 @@ ['asan==1', { 'win_use_allocator_shim%': 0, }], - ['component=="shared_library" and "<(GENERATOR)"=="ninja"', { - # Only enabled by default for ninja because it's buggy in VS. - # Not enabled for component=static_library because some targets - # are too large and the toolchain fails due to the size of the - # .obj files. + ['buildtype!="Official"', { + # Not enabled in Official because it adds padding to builds. + # Enabled for both shared_library and static_library on an + # experimental basis to see if it improves windows cycle times, + # see http://crbug.com/404809. 'incremental_chrome_dll%': 1, }], # Don't do incremental linking for large modules on 32-bit or when @@ -3319,6 +3319,17 @@ # information is used by the Syzygy optimization tool when # decomposing the release image. 'Profile': 'true', + + 'conditions': [ + ['incremental_chrome_dll', { + # During bring-up of Release incremental, have the linker emit + # a one line diagnostic describing why incremental linking + # failed, when it does. http://crbug.com/404809. + 'AdditionalOptions': [ + '/verbose:incr', + ], + }], + ], }, }, 'conditions': [
Message was sent while issue was closed.
Patchset 2 (id:??) landed as https://crrev.com/6922bc1d4b0a2f4604598082a877d3add6d86d1c Cr-Commit-Position: refs/heads/master@{#295786}
Message was sent while issue was closed.
A revert of this CL (patchset #2 id:20001) has been created in https://codereview.chromium.org/591723003/ by scottmg@chromium.org. The reason for reverting is: Does not appear to work well for waterfall workload, see number of instances of "performing full link" in http://build.chromium.org/p/chromium.win/builders/Win%20Builder/builds/2780/s... Might still be worth investigating if it's worthwhile on trybots where less things might change per-job? But doesn't seem that likely.. |