|
|
Created:
4 years ago by Reid Kleckner Modified:
4 years ago CC:
chromium-reviews Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionMake is_win_fastlink imply -fstandalone-debug for clang
Visual Studio can't find type information outside of the object file
currently being debugged with /DEBUG:FASTLINK. So, every object file
needs to have "standalone" debug information in this mode. However, that
generates a lot more debug info and slows down normal links, so only do
this when we know fastlink is in use.
While we're at it, explicitly pass -fno-standalone-debug to clang when
we're not using is_win_fastlink. This will make sure Chromium keeps using
limited debug info if clang switches the default for -fstandalone-debug.
R=thakis@chromium.org,brucedawson@chromium.org
BUG=657518
Committed: https://crrev.com/482876ffc87c08dcd8474001eec6d0717f41c4eb
Cr-Commit-Position: refs/heads/master@{#440163}
Patch Set 1 #
Messages
Total messages: 13 (4 generated)
Doesn't this make fastlink slower? By how much? Since it has "fast" in the name I'd guess that many people set this. On Dec 16, 2016 6:25 PM, "rnk@chromium.org via codereview.chromium.org" < reply@chromiumcodereview-hr.appspotmail.com> wrote: > Reviewers: brucedawson, Nico (out Thu Dec 15) > CL: https://codereview.chromium.org/2587603002/ > > Description: > Make is_win_fastlink imply -fstandalone-debug for clang > > Visual Studio can't find type information outside of the object file > currently being debugged with /DEBUG:FASTLINK. So, every object file > needs to have "standalone" debug information in this mode. However, that > generates a lot more debug info and slows down normal links, so only do > this when we know fastlink is in use. > > While we're at it, explicitly pass -fno-standalone-debug to clang when > we're not using is_win_fastlink. This will make sure Chromium keeps using > limited debug info if clang switches the default for -fstandalone-debug. > > R=thakis@chromium.org,brucedawson@chromium.org > BUG=657518 > > Affected files (+10, -0 lines): > M build/config/compiler/BUILD.gn > > > Index: build/config/compiler/BUILD.gn > diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD. > gn > index f3a69627b3b04726b55af755978481a6a7cd2ff7.. > b5231b1537587a51bdcf520f1adb0afc7eb91cda 100644 > --- a/build/config/compiler/BUILD.gn > +++ b/build/config/compiler/BUILD.gn > @@ -1560,6 +1560,16 @@ config("symbols") { > } else { > ldflags = [ "/DEBUG" ] > } > + > + if (is_clang) { > + # /DEBUG:FASTLINK requires every object file to have standalone debug > + # information. > + if (is_win_fastlink) { > + cflags += [ "-fstandalone-debug" ] > + } else { > + cflags += [ "-fno-standalone-debug" ] > + } > + } > } else { > if (is_mac || is_ios) { > cflags = [ "-gdwarf-2" ] > > > -- You received this message because you are subscribed to the Google Groups "Chromium-reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to chromium-reviews+unsubscribe@chromium.org.
On 2016/12/16 23:32:19, Nico (out Thu Dec 15) wrote: > Doesn't this make fastlink slower? By how much? Since it has "fast" in the > name I'd guess that many people set this. I haven't measured, but I would expect this to impact compile times, not link times. fastlink just leaves the type information where it is. I can measure, but regardless of the results, I think we should make this change, because we're only faster now by virtual of dropping some fraction of type information in this configuration.
This moved fastlink time from 91.6s to 101.4s. I ran each link twice and took the second result, hopefully warming up disk caches. Here's the actual timings: http://pastebin.com/6Rc5Fcmr
On 2016/12/17 00:19:59, Reid Kleckner wrote: > This moved fastlink time from 91.6s to 101.4s. I ran each link twice and took > the second result, hopefully warming up disk caches. Here's the actual timings: > http://pastebin.com/6Rc5Fcmr That seems like a very modest increase in fastlink times, and the result (debugging works) seems quite worthwhile. I must say that I am continually disappointed by how little fastlink really helps, and how many extra problems it causes. It's worth it, but not *clearly* worth it. But hey, I know more about clang's debug information now. Aside: VC++ 2017 is supposed to have a faster implementation of /debug:fastlink lgtm
The CQ bit was checked by rnk@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
(FWIW it doesn't seem like a modest increase to me -- over 10 %-- especially given that the base time is already very slow.) On Wed, Dec 21, 2016 at 12:35 PM, commit-bot@chromium.org via codereview.chromium.org <reply@chromiumcodereview-hr.appspotmail.com> wrote: > CQ is trying da patch. Follow status at > > https://chromium-cq-status.appspot.com/v2/patch-status/ > codereview.chromium.org/2587603002/1 > > > https://codereview.chromium.org/2587603002/ > -- You received this message because you are subscribed to the Google Groups "Chromium-reviews" group. To unsubscribe from this group and stop receiving emails from it, send an email to chromium-reviews+unsubscribe@chromium.org.
CQ is committing da patch. Bot data: {"patchset_id": 1, "attempt_start_ts": 1482341708090190, "parent_rev": "a6a13441f7e9e70bcb8ec329f78881c00f58c718", "commit_rev": "3bec35b89736689e52eed4f0210c6c503082bd48"}
Message was sent while issue was closed.
Description was changed from ========== Make is_win_fastlink imply -fstandalone-debug for clang Visual Studio can't find type information outside of the object file currently being debugged with /DEBUG:FASTLINK. So, every object file needs to have "standalone" debug information in this mode. However, that generates a lot more debug info and slows down normal links, so only do this when we know fastlink is in use. While we're at it, explicitly pass -fno-standalone-debug to clang when we're not using is_win_fastlink. This will make sure Chromium keeps using limited debug info if clang switches the default for -fstandalone-debug. R=thakis@chromium.org,brucedawson@chromium.org BUG=657518 ========== to ========== Make is_win_fastlink imply -fstandalone-debug for clang Visual Studio can't find type information outside of the object file currently being debugged with /DEBUG:FASTLINK. So, every object file needs to have "standalone" debug information in this mode. However, that generates a lot more debug info and slows down normal links, so only do this when we know fastlink is in use. While we're at it, explicitly pass -fno-standalone-debug to clang when we're not using is_win_fastlink. This will make sure Chromium keeps using limited debug info if clang switches the default for -fstandalone-debug. R=thakis@chromium.org,brucedawson@chromium.org BUG=657518 Review-Url: https://codereview.chromium.org/2587603002 ==========
Message was sent while issue was closed.
Committed patchset #1 (id:1)
Message was sent while issue was closed.
Description was changed from ========== Make is_win_fastlink imply -fstandalone-debug for clang Visual Studio can't find type information outside of the object file currently being debugged with /DEBUG:FASTLINK. So, every object file needs to have "standalone" debug information in this mode. However, that generates a lot more debug info and slows down normal links, so only do this when we know fastlink is in use. While we're at it, explicitly pass -fno-standalone-debug to clang when we're not using is_win_fastlink. This will make sure Chromium keeps using limited debug info if clang switches the default for -fstandalone-debug. R=thakis@chromium.org,brucedawson@chromium.org BUG=657518 Review-Url: https://codereview.chromium.org/2587603002 ========== to ========== Make is_win_fastlink imply -fstandalone-debug for clang Visual Studio can't find type information outside of the object file currently being debugged with /DEBUG:FASTLINK. So, every object file needs to have "standalone" debug information in this mode. However, that generates a lot more debug info and slows down normal links, so only do this when we know fastlink is in use. While we're at it, explicitly pass -fno-standalone-debug to clang when we're not using is_win_fastlink. This will make sure Chromium keeps using limited debug info if clang switches the default for -fstandalone-debug. R=thakis@chromium.org,brucedawson@chromium.org BUG=657518 Committed: https://crrev.com/482876ffc87c08dcd8474001eec6d0717f41c4eb Cr-Commit-Position: refs/heads/master@{#440163} ==========
Message was sent while issue was closed.
Patchset 1 (id:??) landed as https://crrev.com/482876ffc87c08dcd8474001eec6d0717f41c4eb Cr-Commit-Position: refs/heads/master@{#440163} |