Remove the full_wpo_on_official flag (enable full WPO by default). |
||||
Issue descriptionThe 'full_wpo_on_official' GN flag allows to enable LTCG (WPO) by default for all the targets in Chrome, this flag is currently off by default because of the performance of doing full LTCG for every official build. There's several continuous official builders that build Chrome and its unittests, so enabling LTCG globally means that you're now optimizing every unittests with LTCG, and so the link time increase significantly as well as the memory usage (which cause some paging on the builders with less than 128GB of RAM). Ideally this flag shouldn't exist and this should be the default configuration (and PGO should be the default config of chrome_child.dll), but there's a big performance cost in doing this (last time that I've tried the perf waterfall was on fire because of the build timeouts), so we should probably use a more gradual approach (e.g. turn it on one builder at a time in mb_config and add the required slaves to the bots that can't handle this). wdyt? This is largely related to 673025 and it's a pretty important issue. [1] https://cs.chromium.org/chromium/src/build/config/compiler/BUILD.gn?rcl=0&l=1378
,
Jan 13 2017
I thought about trying to use LTCG on chrome[_child].dll only but I'm pretty sure that it won't work, most of the shared code (probably everything except the *_unittests.cc files) will be compiled with GL and so we'll get a lot of these warnings in the log: "MSIL .netmodule or module compiled with /GL found; restarting link with /LTCG; add /LTCG to the link command line to improve linker performance" which mean that the targets will still be linked with LTCG, we'll just slow down the build even more. I really don't like this partial LTCG thing, it has been here for years and it's what we used to ship (we never shipped full LTCG except for a few dev/beta builds before switching to PGO), but it's a hack that has lived for too long (and now it's hard to get rid of it).
,
Jan 13 2017
,
Jan 18 2017
,
Dec 11 2017
Lowering the priority of the PGO bugs as we've switched the official build to Clang. I'll close these bugs once we decide that we won't support the VS build anymore.
,
Jun 20 2018
We don't use link.exe anymore. |
||||
►
Sign in to add a comment |
||||
Comment 1 by scottmg@chromium.org
, Jan 13 2017