|
|
Created:
4 years, 5 months ago by brucedawson Modified:
4 years, 5 months ago Reviewers:
brettw CC:
chromium-reviews, posciak+watch_chromium.org, jam, feature-media-reviews_chromium.org, darin-cc_chromium.org, blink-reviews, piman+watch_chromium.org Base URL:
https://chromium.googlesource.com/chromium/src.git@master Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionShrink gn's chrome.dll - now smaller than gyp's
More work to shrink gn's chrome.dll
The three largest globals that were present in gn's chrome.dll but not in gyp's chrome.dll were eliminated by using /verbose linker output to track the object files that pulled them in and then conditionally changing source_set targets to static_library targets. Specifically:
unigram_table, in compact_enc_det.obj
- Referenced by TextResourceDecoder.obj from //third_party/WebKit/Source/core:html - some other source_set targets in this file were also modified
gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s1_ and cmaa_frag_s2_, in gles2_cmd_apply_framebuffer_attachment_cmaa_intel.obj from //gpu/command_buffer/service:service_sources
- Referenced by gpu_command_buffer_stub.obj from //gpu/ipc/service:ipc_service_sources
- Referenced by gpu_video_decode_accelerator.obj from //media/gpu/ipc/service:service
- Referenced by gpu_child_thread.obj from //content/gpu:gpu_sources
- Referenced by gpu_video_decode_accelerator_factory.obj from //content/public/gpu:gpu_sources
As of R406709 this shrinks gn's 32-bit official chrome.dll file size from 38,907,904 bytes to 37,571,584 bytes - an unexpected 1,336,320 byte savings, mostly from the .text section. There is also ~67,000 bytes of memory-only savings in the zero-init part of the .data section.
At the same revision gyp's 32-bit official chrome.dll file size is 37,843,456 bytes - 271,872 bytes *larger* than the gn version.
There are still globals that are present in gn's chrome.dll but not gyp's chrome.dll, so the optimization technique can still be applied some more, but the priority is much lower now that gn is winning.
This is a follow-on to crrev.com/2163823002.
BUG=624274
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Committed: https://crrev.com/e792bd734f3535995d3d34dba43259965b65c51e
Cr-Commit-Position: refs/heads/master@{#406912}
Patch Set 1 #Patch Set 2 : Fix to .lib sizes on goma/official builders #Patch Set 3 : Back to landed patch #
Messages
Total messages: 21 (14 generated)
Description was changed from ========== More changes to avoid globals: unigram_table and cmaa_frag_s1_ and cmaa_frag_s2_ BUG=624274 ========== to ========== More changes to avoid globals: unigram_table and cmaa_frag_s1_ and cmaa_frag_s2_ BUG=624274 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ==========
The CQ bit was checked by brucedawson@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== More changes to avoid globals: unigram_table and cmaa_frag_s1_ and cmaa_frag_s2_ BUG=624274 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== More changes to avoid globals: unigram_table and cmaa_frag_s1_ and cmaa_frag_s2_ unigram_table, in compact_enc_det - Referenced by TextResourceDecoder.obj from //third_party/WebKit/Source/core:html gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s1_ and gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s2_, in gles2_cmd_apply_framebuffer_attachment_cmaa_intel - from //gpu/command_buffer/service:service_sources - Referenced by gpu_command_buffer_stub.obj from //gpu/ipc/service:ipc_service_sources - Referenced by gpu_video_decode_accelerator.obj from //media/gpu/ipc/service:service - Referenced by gpu_child_thread.obj from //content/gpu:gpu_sources - Referenced by gpu_video_decode_accelerator_factory.obj from //content/public/gpu:gpu_sources This seems to have shrunk the .text section by ~832 KB, and gn's chrome.dll now appears to be (32-bit official builds) 270 KB than gyp's. Huh. That's cool. Remaining mismatched globals: 4624: WebRtcIsac_kQKltLevelsShape 3136: WebRtcIsac_kQKltLevelsGain 2600: webrtc::acm2::ACMCodecDB::database_ 2592: WebRtcIsac_kKltT1Shape 2048: fixed_divide 1800: webrtc::acm2::ACMCodecDB::codec_settings_ 1032: nacl_global_rng 1024: kf_low_motion_minq_8 1024: rtc_minq_8 1024: inter_minq_8 1024: arfgf_low_motion_minq_8 1024: sad_per_bit4lut_8 1024: kf_high_motion_minq_8 1024: fixed_invtbl8 1024: sad_per_bit16lut_8 1024: arfgf_high_motion_minq_8 880: vpx_rv 864: WebRtcIsac_kLpcMeansShape 768: vp8_six_tap_mmx 720: WebRtcIsac_kCos 536: WebRtcIsac_kQMeanLag2Hi 528: g_NaCl_log_gio 512: webrtc::RandomVector::kRandomTable 510: WebRtcIsac_kQPitchGainCdf BUG=624274 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ==========
Description was changed from ========== More changes to avoid globals: unigram_table and cmaa_frag_s1_ and cmaa_frag_s2_ unigram_table, in compact_enc_det - Referenced by TextResourceDecoder.obj from //third_party/WebKit/Source/core:html gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s1_ and gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s2_, in gles2_cmd_apply_framebuffer_attachment_cmaa_intel - from //gpu/command_buffer/service:service_sources - Referenced by gpu_command_buffer_stub.obj from //gpu/ipc/service:ipc_service_sources - Referenced by gpu_video_decode_accelerator.obj from //media/gpu/ipc/service:service - Referenced by gpu_child_thread.obj from //content/gpu:gpu_sources - Referenced by gpu_video_decode_accelerator_factory.obj from //content/public/gpu:gpu_sources This seems to have shrunk the .text section by ~832 KB, and gn's chrome.dll now appears to be (32-bit official builds) 270 KB than gyp's. Huh. That's cool. Remaining mismatched globals: 4624: WebRtcIsac_kQKltLevelsShape 3136: WebRtcIsac_kQKltLevelsGain 2600: webrtc::acm2::ACMCodecDB::database_ 2592: WebRtcIsac_kKltT1Shape 2048: fixed_divide 1800: webrtc::acm2::ACMCodecDB::codec_settings_ 1032: nacl_global_rng 1024: kf_low_motion_minq_8 1024: rtc_minq_8 1024: inter_minq_8 1024: arfgf_low_motion_minq_8 1024: sad_per_bit4lut_8 1024: kf_high_motion_minq_8 1024: fixed_invtbl8 1024: sad_per_bit16lut_8 1024: arfgf_high_motion_minq_8 880: vpx_rv 864: WebRtcIsac_kLpcMeansShape 768: vp8_six_tap_mmx 720: WebRtcIsac_kCos 536: WebRtcIsac_kQMeanLag2Hi 528: g_NaCl_log_gio 512: webrtc::RandomVector::kRandomTable 510: WebRtcIsac_kQPitchGainCdf BUG=624274 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== More changes to avoid globals in gn's chrome.dll unigram_table, in compact_enc_det - Referenced by TextResourceDecoder.obj from //third_party/WebKit/Source/core:html gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s1_ and gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s2_, in gles2_cmd_apply_framebuffer_attachment_cmaa_intel - from //gpu/command_buffer/service:service_sources - Referenced by gpu_command_buffer_stub.obj from //gpu/ipc/service:ipc_service_sources - Referenced by gpu_video_decode_accelerator.obj from //media/gpu/ipc/service:service - Referenced by gpu_child_thread.obj from //content/gpu:gpu_sources - Referenced by gpu_video_decode_accelerator_factory.obj from //content/public/gpu:gpu_sources This seems to have shrunk the .text section by ~832 KB, and gn's chrome.dll now appears to be (32-bit official builds) 270 KB than gyp's. Huh. That's cool. Remaining mismatched globals: 4624: WebRtcIsac_kQKltLevelsShape 3136: WebRtcIsac_kQKltLevelsGain 2600: webrtc::acm2::ACMCodecDB::database_ 2592: WebRtcIsac_kKltT1Shape 2048: fixed_divide 1800: webrtc::acm2::ACMCodecDB::codec_settings_ 1032: nacl_global_rng 1024: kf_low_motion_minq_8 1024: rtc_minq_8 1024: inter_minq_8 1024: arfgf_low_motion_minq_8 1024: sad_per_bit4lut_8 1024: kf_high_motion_minq_8 1024: fixed_invtbl8 1024: sad_per_bit16lut_8 1024: arfgf_high_motion_minq_8 880: vpx_rv 864: WebRtcIsac_kLpcMeansShape 768: vp8_six_tap_mmx 720: WebRtcIsac_kCos 536: WebRtcIsac_kQMeanLag2Hi 528: g_NaCl_log_gio 512: webrtc::RandomVector::kRandomTable 510: WebRtcIsac_kQPitchGainCdf BUG=624274 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ==========
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
Description was changed from ========== More changes to avoid globals in gn's chrome.dll unigram_table, in compact_enc_det - Referenced by TextResourceDecoder.obj from //third_party/WebKit/Source/core:html gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s1_ and gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s2_, in gles2_cmd_apply_framebuffer_attachment_cmaa_intel - from //gpu/command_buffer/service:service_sources - Referenced by gpu_command_buffer_stub.obj from //gpu/ipc/service:ipc_service_sources - Referenced by gpu_video_decode_accelerator.obj from //media/gpu/ipc/service:service - Referenced by gpu_child_thread.obj from //content/gpu:gpu_sources - Referenced by gpu_video_decode_accelerator_factory.obj from //content/public/gpu:gpu_sources This seems to have shrunk the .text section by ~832 KB, and gn's chrome.dll now appears to be (32-bit official builds) 270 KB than gyp's. Huh. That's cool. Remaining mismatched globals: 4624: WebRtcIsac_kQKltLevelsShape 3136: WebRtcIsac_kQKltLevelsGain 2600: webrtc::acm2::ACMCodecDB::database_ 2592: WebRtcIsac_kKltT1Shape 2048: fixed_divide 1800: webrtc::acm2::ACMCodecDB::codec_settings_ 1032: nacl_global_rng 1024: kf_low_motion_minq_8 1024: rtc_minq_8 1024: inter_minq_8 1024: arfgf_low_motion_minq_8 1024: sad_per_bit4lut_8 1024: kf_high_motion_minq_8 1024: fixed_invtbl8 1024: sad_per_bit16lut_8 1024: arfgf_high_motion_minq_8 880: vpx_rv 864: WebRtcIsac_kLpcMeansShape 768: vp8_six_tap_mmx 720: WebRtcIsac_kCos 536: WebRtcIsac_kQMeanLag2Hi 528: g_NaCl_log_gio 512: webrtc::RandomVector::kRandomTable 510: WebRtcIsac_kQPitchGainCdf BUG=624274 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== Shrink gn's chrome.dll - now smaller than gyp's More work to shrink gn's chrome.dll The three largest globals that were present in gn's chrome.dll but not in gyp's chrome.dll were eliminated by using /verbose linker output to track the object files that pulled them in and then conditionally changing source_set targets to static_library targets. Specifically: unigram_table, in compact_enc_det from //third_party/ced:ced - Referenced by TextResourceDecoder.obj from //third_party/WebKit/Source/core:html - some other source_set targets in this file were also modified gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s1_ and cmaa_frag_s2_, in gles2_cmd_apply_framebuffer_attachment_cmaa_intel from //gpu/command_buffer/service:service_sources - Referenced by gpu_command_buffer_stub.obj from //gpu/ipc/service:ipc_service_sources - Referenced by gpu_video_decode_accelerator.obj from //media/gpu/ipc/service:service - Referenced by gpu_child_thread.obj from //content/gpu:gpu_sources - Referenced by gpu_video_decode_accelerator_factory.obj from //content/public/gpu:gpu_sources As of R406709 this shrinks gn's 32-bit official chrome.dll file size from 38,907,904 bytes to 37,571,584 bytes - an unexpected 1,336,320 byte savings, mostly from the .text section. There is also ~67,000 bytes of memory-only savings in the zero-init part of the .data section. At the same revision gyp's 32-bit official chrome.dll file size is 37,843,456 bytes - 271,872 bytes *larger* than the gn version. There are still globals that are present in gn's chrome.dll but not gyp's chrome.dll, so the optimization technique can still be applied some more, but the priority is much lower now that gn is winning. This is a follow-on to crrev.com/2163823002. BUG=624274 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ==========
Description was changed from ========== Shrink gn's chrome.dll - now smaller than gyp's More work to shrink gn's chrome.dll The three largest globals that were present in gn's chrome.dll but not in gyp's chrome.dll were eliminated by using /verbose linker output to track the object files that pulled them in and then conditionally changing source_set targets to static_library targets. Specifically: unigram_table, in compact_enc_det from //third_party/ced:ced - Referenced by TextResourceDecoder.obj from //third_party/WebKit/Source/core:html - some other source_set targets in this file were also modified gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s1_ and cmaa_frag_s2_, in gles2_cmd_apply_framebuffer_attachment_cmaa_intel from //gpu/command_buffer/service:service_sources - Referenced by gpu_command_buffer_stub.obj from //gpu/ipc/service:ipc_service_sources - Referenced by gpu_video_decode_accelerator.obj from //media/gpu/ipc/service:service - Referenced by gpu_child_thread.obj from //content/gpu:gpu_sources - Referenced by gpu_video_decode_accelerator_factory.obj from //content/public/gpu:gpu_sources As of R406709 this shrinks gn's 32-bit official chrome.dll file size from 38,907,904 bytes to 37,571,584 bytes - an unexpected 1,336,320 byte savings, mostly from the .text section. There is also ~67,000 bytes of memory-only savings in the zero-init part of the .data section. At the same revision gyp's 32-bit official chrome.dll file size is 37,843,456 bytes - 271,872 bytes *larger* than the gn version. There are still globals that are present in gn's chrome.dll but not gyp's chrome.dll, so the optimization technique can still be applied some more, but the priority is much lower now that gn is winning. This is a follow-on to crrev.com/2163823002. BUG=624274 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== Shrink gn's chrome.dll - now smaller than gyp's More work to shrink gn's chrome.dll The three largest globals that were present in gn's chrome.dll but not in gyp's chrome.dll were eliminated by using /verbose linker output to track the object files that pulled them in and then conditionally changing source_set targets to static_library targets. Specifically: unigram_table - Referenced by TextResourceDecoder.obj from //third_party/WebKit/Source/core:html - some other source_set targets in this file were also modified gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s1_ and cmaa_frag_s2_, in gles2_cmd_apply_framebuffer_attachment_cmaa_intel from //gpu/command_buffer/service:service_sources - Referenced by gpu_command_buffer_stub.obj from //gpu/ipc/service:ipc_service_sources - Referenced by gpu_video_decode_accelerator.obj from //media/gpu/ipc/service:service - Referenced by gpu_child_thread.obj from //content/gpu:gpu_sources - Referenced by gpu_video_decode_accelerator_factory.obj from //content/public/gpu:gpu_sources As of R406709 this shrinks gn's 32-bit official chrome.dll file size from 38,907,904 bytes to 37,571,584 bytes - an unexpected 1,336,320 byte savings, mostly from the .text section. There is also ~67,000 bytes of memory-only savings in the zero-init part of the .data section. At the same revision gyp's 32-bit official chrome.dll file size is 37,843,456 bytes - 271,872 bytes *larger* than the gn version. There are still globals that are present in gn's chrome.dll but not gyp's chrome.dll, so the optimization technique can still be applied some more, but the priority is much lower now that gn is winning. This is a follow-on to crrev.com/2163823002. BUG=624274 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ==========
brucedawson@chromium.org changed reviewers: + brettw@chromium.org
Description was changed from ========== Shrink gn's chrome.dll - now smaller than gyp's More work to shrink gn's chrome.dll The three largest globals that were present in gn's chrome.dll but not in gyp's chrome.dll were eliminated by using /verbose linker output to track the object files that pulled them in and then conditionally changing source_set targets to static_library targets. Specifically: unigram_table - Referenced by TextResourceDecoder.obj from //third_party/WebKit/Source/core:html - some other source_set targets in this file were also modified gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s1_ and cmaa_frag_s2_, in gles2_cmd_apply_framebuffer_attachment_cmaa_intel from //gpu/command_buffer/service:service_sources - Referenced by gpu_command_buffer_stub.obj from //gpu/ipc/service:ipc_service_sources - Referenced by gpu_video_decode_accelerator.obj from //media/gpu/ipc/service:service - Referenced by gpu_child_thread.obj from //content/gpu:gpu_sources - Referenced by gpu_video_decode_accelerator_factory.obj from //content/public/gpu:gpu_sources As of R406709 this shrinks gn's 32-bit official chrome.dll file size from 38,907,904 bytes to 37,571,584 bytes - an unexpected 1,336,320 byte savings, mostly from the .text section. There is also ~67,000 bytes of memory-only savings in the zero-init part of the .data section. At the same revision gyp's 32-bit official chrome.dll file size is 37,843,456 bytes - 271,872 bytes *larger* than the gn version. There are still globals that are present in gn's chrome.dll but not gyp's chrome.dll, so the optimization technique can still be applied some more, but the priority is much lower now that gn is winning. This is a follow-on to crrev.com/2163823002. BUG=624274 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== Shrink gn's chrome.dll - now smaller than gyp's More work to shrink gn's chrome.dll The three largest globals that were present in gn's chrome.dll but not in gyp's chrome.dll were eliminated by using /verbose linker output to track the object files that pulled them in and then conditionally changing source_set targets to static_library targets. Specifically: unigram_table, in compact_enc_det.obj - Referenced by TextResourceDecoder.obj from //third_party/WebKit/Source/core:html - some other source_set targets in this file were also modified gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s1_ and cmaa_frag_s2_, in gles2_cmd_apply_framebuffer_attachment_cmaa_intel.obj from //gpu/command_buffer/service:service_sources - Referenced by gpu_command_buffer_stub.obj from //gpu/ipc/service:ipc_service_sources - Referenced by gpu_video_decode_accelerator.obj from //media/gpu/ipc/service:service - Referenced by gpu_child_thread.obj from //content/gpu:gpu_sources - Referenced by gpu_video_decode_accelerator_factory.obj from //content/public/gpu:gpu_sources As of R406709 this shrinks gn's 32-bit official chrome.dll file size from 38,907,904 bytes to 37,571,584 bytes - an unexpected 1,336,320 byte savings, mostly from the .text section. There is also ~67,000 bytes of memory-only savings in the zero-init part of the .data section. At the same revision gyp's 32-bit official chrome.dll file size is 37,843,456 bytes - 271,872 bytes *larger* than the gn version. There are still globals that are present in gn's chrome.dll but not gyp's chrome.dll, so the optimization technique can still be applied some more, but the priority is much lower now that gn is winning. This is a follow-on to crrev.com/2163823002. BUG=624274 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ==========
lgtm
The CQ bit was checked by brucedawson@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Message was sent while issue was closed.
Description was changed from ========== Shrink gn's chrome.dll - now smaller than gyp's More work to shrink gn's chrome.dll The three largest globals that were present in gn's chrome.dll but not in gyp's chrome.dll were eliminated by using /verbose linker output to track the object files that pulled them in and then conditionally changing source_set targets to static_library targets. Specifically: unigram_table, in compact_enc_det.obj - Referenced by TextResourceDecoder.obj from //third_party/WebKit/Source/core:html - some other source_set targets in this file were also modified gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s1_ and cmaa_frag_s2_, in gles2_cmd_apply_framebuffer_attachment_cmaa_intel.obj from //gpu/command_buffer/service:service_sources - Referenced by gpu_command_buffer_stub.obj from //gpu/ipc/service:ipc_service_sources - Referenced by gpu_video_decode_accelerator.obj from //media/gpu/ipc/service:service - Referenced by gpu_child_thread.obj from //content/gpu:gpu_sources - Referenced by gpu_video_decode_accelerator_factory.obj from //content/public/gpu:gpu_sources As of R406709 this shrinks gn's 32-bit official chrome.dll file size from 38,907,904 bytes to 37,571,584 bytes - an unexpected 1,336,320 byte savings, mostly from the .text section. There is also ~67,000 bytes of memory-only savings in the zero-init part of the .data section. At the same revision gyp's 32-bit official chrome.dll file size is 37,843,456 bytes - 271,872 bytes *larger* than the gn version. There are still globals that are present in gn's chrome.dll but not gyp's chrome.dll, so the optimization technique can still be applied some more, but the priority is much lower now that gn is winning. This is a follow-on to crrev.com/2163823002. BUG=624274 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== Shrink gn's chrome.dll - now smaller than gyp's More work to shrink gn's chrome.dll The three largest globals that were present in gn's chrome.dll but not in gyp's chrome.dll were eliminated by using /verbose linker output to track the object files that pulled them in and then conditionally changing source_set targets to static_library targets. Specifically: unigram_table, in compact_enc_det.obj - Referenced by TextResourceDecoder.obj from //third_party/WebKit/Source/core:html - some other source_set targets in this file were also modified gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s1_ and cmaa_frag_s2_, in gles2_cmd_apply_framebuffer_attachment_cmaa_intel.obj from //gpu/command_buffer/service:service_sources - Referenced by gpu_command_buffer_stub.obj from //gpu/ipc/service:ipc_service_sources - Referenced by gpu_video_decode_accelerator.obj from //media/gpu/ipc/service:service - Referenced by gpu_child_thread.obj from //content/gpu:gpu_sources - Referenced by gpu_video_decode_accelerator_factory.obj from //content/public/gpu:gpu_sources As of R406709 this shrinks gn's 32-bit official chrome.dll file size from 38,907,904 bytes to 37,571,584 bytes - an unexpected 1,336,320 byte savings, mostly from the .text section. There is also ~67,000 bytes of memory-only savings in the zero-init part of the .data section. At the same revision gyp's 32-bit official chrome.dll file size is 37,843,456 bytes - 271,872 bytes *larger* than the gn version. There are still globals that are present in gn's chrome.dll but not gyp's chrome.dll, so the optimization technique can still be applied some more, but the priority is much lower now that gn is winning. This is a follow-on to crrev.com/2163823002. BUG=624274 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ==========
Message was sent while issue was closed.
Committed patchset #1 (id:1)
Message was sent while issue was closed.
Description was changed from ========== Shrink gn's chrome.dll - now smaller than gyp's More work to shrink gn's chrome.dll The three largest globals that were present in gn's chrome.dll but not in gyp's chrome.dll were eliminated by using /verbose linker output to track the object files that pulled them in and then conditionally changing source_set targets to static_library targets. Specifically: unigram_table, in compact_enc_det.obj - Referenced by TextResourceDecoder.obj from //third_party/WebKit/Source/core:html - some other source_set targets in this file were also modified gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s1_ and cmaa_frag_s2_, in gles2_cmd_apply_framebuffer_attachment_cmaa_intel.obj from //gpu/command_buffer/service:service_sources - Referenced by gpu_command_buffer_stub.obj from //gpu/ipc/service:ipc_service_sources - Referenced by gpu_video_decode_accelerator.obj from //media/gpu/ipc/service:service - Referenced by gpu_child_thread.obj from //content/gpu:gpu_sources - Referenced by gpu_video_decode_accelerator_factory.obj from //content/public/gpu:gpu_sources As of R406709 this shrinks gn's 32-bit official chrome.dll file size from 38,907,904 bytes to 37,571,584 bytes - an unexpected 1,336,320 byte savings, mostly from the .text section. There is also ~67,000 bytes of memory-only savings in the zero-init part of the .data section. At the same revision gyp's 32-bit official chrome.dll file size is 37,843,456 bytes - 271,872 bytes *larger* than the gn version. There are still globals that are present in gn's chrome.dll but not gyp's chrome.dll, so the optimization technique can still be applied some more, but the priority is much lower now that gn is winning. This is a follow-on to crrev.com/2163823002. BUG=624274 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ========== to ========== Shrink gn's chrome.dll - now smaller than gyp's More work to shrink gn's chrome.dll The three largest globals that were present in gn's chrome.dll but not in gyp's chrome.dll were eliminated by using /verbose linker output to track the object files that pulled them in and then conditionally changing source_set targets to static_library targets. Specifically: unigram_table, in compact_enc_det.obj - Referenced by TextResourceDecoder.obj from //third_party/WebKit/Source/core:html - some other source_set targets in this file were also modified gpu::ApplyFramebufferAttachmentCMAAINTELResourceManager::cmaa_frag_s1_ and cmaa_frag_s2_, in gles2_cmd_apply_framebuffer_attachment_cmaa_intel.obj from //gpu/command_buffer/service:service_sources - Referenced by gpu_command_buffer_stub.obj from //gpu/ipc/service:ipc_service_sources - Referenced by gpu_video_decode_accelerator.obj from //media/gpu/ipc/service:service - Referenced by gpu_child_thread.obj from //content/gpu:gpu_sources - Referenced by gpu_video_decode_accelerator_factory.obj from //content/public/gpu:gpu_sources As of R406709 this shrinks gn's 32-bit official chrome.dll file size from 38,907,904 bytes to 37,571,584 bytes - an unexpected 1,336,320 byte savings, mostly from the .text section. There is also ~67,000 bytes of memory-only savings in the zero-init part of the .data section. At the same revision gyp's 32-bit official chrome.dll file size is 37,843,456 bytes - 271,872 bytes *larger* than the gn version. There are still globals that are present in gn's chrome.dll but not gyp's chrome.dll, so the optimization technique can still be applied some more, but the priority is much lower now that gn is winning. This is a follow-on to crrev.com/2163823002. BUG=624274 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Committed: https://crrev.com/e792bd734f3535995d3d34dba43259965b65c51e Cr-Commit-Position: refs/heads/master@{#406912} ==========
Message was sent while issue was closed.
Patchset 1 (id:??) landed as https://crrev.com/e792bd734f3535995d3d34dba43259965b65c51e Cr-Commit-Position: refs/heads/master@{#406912}
Message was sent while issue was closed.
A revert of this CL (patchset #1 id:1) has been created in https://codereview.chromium.org/2173453004/ by achuith@chromium.org. The reason for reverting is: Request revert by author.
Message was sent while issue was closed.
The first change was not breaking remaining*.lib into enough pieces. I now copy over the logic from the .gyp file (should have done that in the first place) and use the sizes 5 and 19 instead of 6. Note that official builds increase the size of the .lib files by about 9x, and official goma builds increase it by another ~67%. The only is that in .gyp the 19 split count for remaining*.lib also applies when fast_build==0 and win_z7==1, however .gn does not have a win_z7 equivalent, as far as I can tell.
Message was sent while issue was closed.
Ignore last patch/comment. Will reland on a different CL. |