Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(122)

Issue 2152783002: Enable precompiled headers for Blink on Windows (Closed)

Created:
4 years, 5 months ago by Daniel Bratell
Modified:
4 years, 1 month ago
Reviewers:
sof, Nico
CC:
chromium-reviews, oilpan-reviews, Mads Ager (chromium), mlamouri+watch-blink_chromium.org, dcheng, haraken, dominicc+watchlist_chromium.org, blink-reviews, kinuko+watch, kouhei+heap_chromium.org, blink-reviews-wtf_chromium.org, Mikhail
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Enable precompiled headers for Blink on Windows One reason Blink is slow to compile is that there is a lot of code included in every compilation unit. This is partly because everything depends on either LayoutObject.h or Document.h and those in turn include huge portions of the rest of Blink. By precompiling LayoutObject.h and Document.h the compilation of core and modules in Blink can be 4 times faster (5 minutes instead of 20 minutes on my computer). The downside is that it will introduce Document.h and LayoutObject.h also in compilation units that didn't expect it, for instance XPathGrammer.y that suddenly will have both blink::Path and blink::XPath::Path in scope (and blink::Filter / blink::XPath::Filter) Note that distributed compilation system disables precompiled headers globally so this will *not* make trybots faster. This already landed[1] in the gyp/VS2013 world a year ago but some random bot failures made us decide to revert it. Now with gn and VS2015 the world should be a better place. [1] https://codereview.chromium.org/1167523007/ BUG=495697

Patch Set 1 #

Total comments: 6

Patch Set 2 : Post review cleanup. #

Patch Set 3 : Also enable pch for web for 1 more minute. #

Patch Set 4 : Cleaning up comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+203 lines, -39 lines) Patch
M build/config/BUILD.gn View 1 8 chunks +7 lines, -11 lines 0 comments Download
A build/config/pch.gni View 1 1 chunk +16 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/BUILD.gn View 1 1 chunk +38 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/BUILD.gn View 1 11 chunks +45 lines, -9 lines 0 comments Download
M third_party/WebKit/Source/core/DEPS View 1 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/core.gyp View 4 chunks +4 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/frame/Frame.h View 2 chunks +1 line, -1 line 0 comments Download
A third_party/WebKit/Source/core/win/Precompile-core.h View 1 2 3 1 chunk +32 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/win/Precompile-core.cpp View 1 2 3 1 chunk +9 lines, -0 lines 0 comments Download
A third_party/WebKit/Source/core/win/precompile-core.gypi View 1 2 1 chunk +19 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/xml/XPathGrammar.y View 2 chunks +3 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/modules/BUILD.gn View 3 chunks +3 lines, -1 line 0 comments Download
M third_party/WebKit/Source/modules/modules.gyp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/platform/BUILD.gn View 8 chunks +8 lines, -3 lines 0 comments Download
M third_party/WebKit/Source/platform/heap/BUILD.gn View 2 chunks +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/web/BUILD.gn View 1 2 4 chunks +7 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/web/web.gyp View 1 chunk +1 line, -1 line 0 comments Download
M third_party/WebKit/Source/wtf/BUILD.gn View 3 chunks +6 lines, -2 lines 0 comments Download

Messages

Total messages: 23 (13 generated)
brucedawson
PCH is good. Increasing dependencies is not. The tradeoff is that incremental builds may now ...
4 years, 5 months ago (2016-07-14 18:44:51 UTC) #6
Daniel Bratell
On 2016/07/14 18:44:51, brucedawson wrote: > PCH is good. Increasing dependencies is not. The tradeoff ...
4 years, 5 months ago (2016-07-14 19:53:53 UTC) #7
Daniel Bratell
thakis, can you please take a look? This is an identical change to the one ...
4 years, 5 months ago (2016-07-14 19:55:14 UTC) #9
Nico
Given that this didn't work last summer, and the change is identical, why would it ...
4 years, 5 months ago (2016-07-14 19:56:13 UTC) #10
Nico
https://codereview.chromium.org/2152783002/diff/1/third_party/WebKit/Source/BUILD.gn File third_party/WebKit/Source/BUILD.gn (right): https://codereview.chromium.org/2152783002/diff/1/third_party/WebKit/Source/BUILD.gn#newcode53 third_party/WebKit/Source/BUILD.gn:53: if (!is_official_build && !use_goma && !disable_precompiled_headers) { Rather than ...
4 years, 5 months ago (2016-07-14 19:58:52 UTC) #11
Daniel Bratell
On 2016/07/14 19:56:13, Nico wrote: > Given that this didn't work last summer, and the ...
4 years, 5 months ago (2016-07-14 20:18:57 UTC) #12
Daniel Bratell
https://codereview.chromium.org/2152783002/diff/1/third_party/WebKit/Source/BUILD.gn File third_party/WebKit/Source/BUILD.gn (right): https://codereview.chromium.org/2152783002/diff/1/third_party/WebKit/Source/BUILD.gn#newcode53 third_party/WebKit/Source/BUILD.gn:53: if (!is_official_build && !use_goma && !disable_precompiled_headers) { On 2016/07/14 ...
4 years, 5 months ago (2016-07-15 06:43:56 UTC) #13
Daniel Bratell
thakis, new version uploaded. Do you think this is better?
4 years, 5 months ago (2016-07-15 14:35:30 UTC) #20
sof
At Daniel's request, taking over this one at https://codereview.chromium.org/2520863002/
4 years, 1 month ago (2016-11-21 10:04:52 UTC) #22
Daniel Bratell
4 years, 1 month ago (2016-11-21 10:49:19 UTC) #23
On 2016/11/21 10:04:52, sof wrote:
> At Daniel's request, taking over this one at
> https://codereview.chromium.org/2520863002/

Yay! 

I'm closing this.

Powered by Google App Engine
This is Rietveld 408576698