|
|
Chromium Code Reviews
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.. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
