[PATCH] D15784: Enable 2 warnings on MSVC, turn on StringPooling & intrinsic functions
Alexander Riccio via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 1 18:45:38 PST 2016
ariccio added a comment.
Added stats. See inline comments.
================
Comment at: cmake/modules/HandleLLVMOptions.cmake:369
@@ +368,3 @@
+ # Eliminate Duplicate Strings
+ append("/GF" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
+
----------------
ariccio wrote:
> aaron.ballman wrote:
> > ariccio wrote:
> > > aaron.ballman wrote:
> > > > >> I think this one is reasonable, but I worry about it requiring use of /bigobj.
> > > > > MSVC didn't complain about it in the debug build, so my guess is that this isn't a problem, but I'll compile a release build - optimizations might somehow pack more strings into a single image? - and see if it causes problems there. Can you think of any situation that might actually include more than 65,536 strings?
> > > >
> > > > From MSDN:
> > > >
> > > > > The /GF compiler option creates an addressable section for each unique string. And by default, an object file can contain up to 65,536 addressable sections. If your program contains more than 65,536 strings, use the /bigobj compiler option to create more sections.
> > > >
> > > > The compiler has a lot of unique strings, which means that this option will create a lot of addressable sections. My gut feeling (not based on any research) is that our duplicate string literals are generally going to be short strings, and not repeated overly often. I would guess that our unique string literals dwarf the duplicates, and this is unlikely to have a huge size savings, but may push us over the bigobj limit.
> > > >
> > > > >> What are the size differences for our executables with this option disabled vs enabled?
> > > > > Ok, I'm embarrassed to say it, but I don't have any data for this. LLVM just takes too long to compile for me to check the executable size for such a small patch. Is that reasonable, or should I actually compare them?
> > > >
> > > > You should actually compare them. When changing the compiler switches like this, you want to make sure that (1) the projects all still compile (perhaps there are code changes required to enable these flags), and (2) that check-all still runs cleanly (code could have been unintentionally relying on a particular optimization strategy, there are optimizer bugs, etc). This also lets you get the size statistics as well.
> > > Before anything: (1), and (2) still pass - on my machine, two check-all tests fail before and after, because Python.exe is in a path that contains spaces.
> > >
> > > > This also lets you get the size statistics as well.
> > >
> > > Any tips on how to get the size stats? Surely, there's a better way to do it than manually?
> > >
> > >
> > While an automated tool may exist, I am unaware of one. I would just do it manually, but I'm on Windows where the libraries are static instead of dynamic, so I would only have to look at the resulting .exe files. On other platforms, a quick and dirty script might be easiest.
> Here's the first batch of stats. It's mostly for my own reference at the moment:
>
>
> ```
> `Release build with patch:
>
> Directory of C:\LLVM\build\Release\bin
>
> 12/27/2015 10:24 PM <DIR> ..
> 12/27/2015 10:24 PM <DIR> .
> 12/27/2015 10:24 PM 23,004,160 LTO.dll
> 12/27/2015 10:21 PM 27,575,296 libclang.dll
> 12/27/2015 10:23 PM 11,776 c-arcmt-test.exe
> 12/27/2015 10:23 PM 74,240 c-index-test.exe
> 12/27/2015 10:24 PM 34,473,984 clang++.exe
> 12/27/2015 10:22 PM 28,597,248 clang-check.exe
> 12/27/2015 10:24 PM 34,473,984 clang-cl.exe
> 12/27/2015 10:23 PM 1,206,272 clang-format.exe
> 12/27/2015 09:26 PM 636,416 clang-tblgen.exe
> 12/27/2015 10:24 PM 34,473,984 clang.exe
> 12/27/2015 09:49 PM 10,752 count.exe
> 12/27/2015 10:21 PM 2,692,096 diagtool.exe
> 12/27/2015 09:49 PM 199,168 FileCheck.exe
> 12/27/2015 09:49 PM 144,384 KillTheDoctor.exe
> 12/27/2015 10:23 PM 5,304,832 bugpoint.exe
> 12/27/2015 10:21 PM 19,832,320 llc.exe
> 12/27/2015 09:49 PM 25,088 lli-child-target.exe
> 12/27/2015 10:21 PM 9,769,472 lli.exe
> 12/27/2015 10:21 PM 10,468,864 llvm-ar.exe
> 12/27/2015 10:21 PM 1,691,648 llvm-as.exe
> 12/27/2015 10:21 PM 165,888 llvm-bcanalyzer.exe
> 12/27/2015 10:21 PM 18,173,952 llvm-c-test.exe
> 12/27/2015 09:49 PM 103,936 llvm-config.exe
> 12/27/2015 10:21 PM 1,687,040 llvm-cov.exe
> 12/27/2015 10:23 PM 8,776,704 arcmt-test.exe
> 12/27/2015 10:21 PM 1,570,304 llvm-diff.exe
> 12/27/2015 10:22 PM 1,326,080 llvm-dis.exe
> 12/27/2015 10:22 PM 16,863,232 llvm-dsymutil.exe
> 12/27/2015 10:22 PM 1,675,264 llvm-dwarfdump.exe
> 12/27/2015 10:22 PM 16,630,784 llvm-dwp.exe
> 12/27/2015 10:22 PM 2,025,472 llvm-extract.exe
> 12/27/2015 10:22 PM 10,468,864 llvm-lib.exe
> 12/27/2015 10:22 PM 1,961,472 llvm-link.exe
> 12/27/2015 09:49 PM 173,568 yaml-bench.exe
> 12/27/2015 10:22 PM 21,027,840 llvm-lto.exe
> 12/27/2015 10:22 PM 11,923,968 llvm-mc.exe
> 12/27/2015 09:49 PM 144,384 llvm-mcmarkup.exe
> 12/27/2015 10:22 PM 10,464,256 llvm-nm.exe
> 12/27/2015 10:22 PM 9,658,880 llvm-objdump.exe
> 12/27/2015 10:22 PM 215,040 llvm-pdbdump.exe
> 12/27/2015 09:49 PM 18,432 llvm-PerfectShuffle.exe
> 12/27/2015 10:22 PM 325,632 llvm-profdata.exe
> 12/27/2015 10:22 PM 10,468,864 llvm-ranlib.exe
> 12/27/2015 10:22 PM 1,805,824 llvm-readobj.exe
> 12/27/2015 10:23 PM 8,293,888 llvm-rtdyld.exe
> 12/27/2015 10:23 PM 1,575,936 llvm-size.exe
> 12/27/2015 10:23 PM 1,929,728 llvm-split.exe
> 12/27/2015 10:23 PM 1,341,440 llvm-stress.exe
> 12/27/2015 10:23 PM 1,714,176 llvm-symbolizer.exe
> 12/27/2015 09:26 PM 1,300,992 llvm-tblgen.exe
> 12/27/2015 10:21 PM 1,580,544 llvm-cxxdump.exe
> 12/27/2015 09:49 PM 52,224 not.exe
> 12/27/2015 10:23 PM 1,660,928 obj2yaml.exe
> 12/27/2015 10:23 PM 19,069,952 opt.exe
> 12/27/2015 10:23 PM 9,402,368 sancov.exe
> 12/27/2015 10:23 PM 1,809,920 verify-uselistorder.exe
> 12/27/2015 10:23 PM 352,256 yaml2obj.exe
> 58 File(s) 432,407,697 bytes
> 2 Dir(s) 37,355,769,856 bytes free
>
>
>
>
>
>
> Debug build with patch:
>
> Directory of C:\LLVM\build\Debug\bin
>
> 12/28/2015 06:56 PM <DIR> ..
> 12/28/2015 06:56 PM <DIR> .
> 12/27/2015 04:08 AM 87,031,808 libclang.dll
> 12/27/2015 04:17 AM 57,349,120 LTO.dll
> 12/27/2015 04:14 AM 1,549,824 yaml2obj.exe
> 12/27/2015 04:14 AM 1,019,392 yaml-bench.exe
> 12/27/2015 04:04 AM 23,538,688 bugpoint.exe
> 12/27/2015 04:11 AM 7,152,128 verify-uselistorder.exe
> 12/27/2015 04:10 AM 19,379,712 sancov.exe
> 12/27/2015 04:10 AM 39,424 c-arcmt-test.exe
> 12/27/2015 04:11 AM 52,358,144 opt.exe
> 12/27/2015 04:10 AM 7,360,512 obj2yaml.exe
> 12/27/2015 04:10 AM 159,232 c-index-test.exe
> 12/27/2015 04:10 AM 783,360 not.exe
> 12/27/2015 04:16 AM 35,772,416 arcmt-test.exe
> 12/27/2015 04:15 AM 102,623,232 clang++.exe
> 12/27/2015 04:14 AM 82,458,624 clang-check.exe
> 12/27/2015 02:39 AM 6,316,032 llvm-tblgen.exe
> 12/27/2015 04:10 AM 7,760,384 llvm-symbolizer.exe
> 12/27/2015 04:15 AM 102,623,232 clang-cl.exe
> 12/27/2015 04:14 AM 4,243,456 clang-format.exe
> 12/28/2015 01:15 AM 77,312 a.exe
> 12/27/2015 04:10 AM 9,785,344 llvm-split.exe
> 12/27/2015 02:39 AM 2,542,080 clang-tblgen.exe
> 12/27/2015 04:09 AM 6,902,272 llvm-size.exe
> 12/27/2015 04:09 AM 19,422,208 llvm-rtdyld.exe
> 12/27/2015 04:14 AM 102,623,232 clang.exe
> 12/27/2015 04:09 AM 7,448,064 llvm-readobj.exe
> 12/27/2015 04:09 AM 25,309,184 llvm-ranlib.exe
> 12/27/2015 04:17 AM 37,888 count.exe
> 12/27/2015 04:09 AM 5,266,432 llvm-profdata.exe
> 12/24/2015 04:17 PM 86,016 llvm-PerfectShuffle.exe
> 12/27/2015 04:18 AM 28,745,728 diagtool.exe
> 12/27/2015 04:07 AM 1,226,752 llvm-pdbdump.exe
> 12/27/2015 04:25 AM 19,498,496 llvm-objdump.exe
> 12/27/2015 04:09 AM 1,027,584 FileCheck.exe
> 12/27/2015 04:24 AM 25,182,720 llvm-nm.exe
> 12/27/2015 04:24 AM 848,384 llvm-mcmarkup.exe
> 12/24/2015 05:42 PM 837,120 KillTheDoctor.exe
> 12/27/2015 04:23 AM 28,077,056 llvm-mc.exe
> 12/27/2015 04:24 AM 54,491,136 llvm-lto.exe
> 12/24/2015 05:41 PM 5,568,512 llvm-stress.exe
> 12/27/2015 04:23 AM 8,723,456 llvm-link.exe
> 12/27/2015 04:22 AM 25,309,184 llvm-lib.exe
> 12/27/2015 04:19 AM 50,145,792 llc.exe
> 12/27/2015 04:23 AM 9,079,808 llvm-extract.exe
> 12/27/2015 04:22 AM 44,934,144 llvm-dwp.exe
> 12/27/2015 04:19 AM 796,160 lli-child-target.exe
> 12/27/2015 04:21 AM 7,410,688 llvm-dwarfdump.exe
> 12/27/2015 04:22 AM 45,424,128 llvm-dsymutil.exe
> 12/27/2015 04:19 AM 30,037,504 lli.exe
> 12/27/2015 04:21 AM 5,511,168 llvm-dis.exe
> 12/27/2015 04:21 AM 6,457,344 llvm-diff.exe
> 12/27/2015 04:06 AM 25,309,184 llvm-ar.exe
> 12/27/2015 04:20 AM 7,239,680 llvm-cxxdump.exe
> 12/27/2015 04:20 AM 7,549,440 llvm-cov.exe
> 12/27/2015 04:19 AM 6,613,504 llvm-as.exe
> 12/27/2015 04:20 AM 906,752 llvm-config.exe
> 12/27/2015 04:20 AM 45,832,704 llvm-c-test.exe
> 12/27/2015 04:19 AM 954,880 llvm-bcanalyzer.exe
> 165 File(s) 9,042,836,639 bytes
> 2 Dir(s) 37,355,757,568 bytes free
>
>
>
>
>
> MinSizeRel build with patch:
>
> Directory of C:\LLVM\build\MinSizeRel\bin
>
> 12/29/2015 06:13 PM <DIR> ..
> 12/29/2015 06:13 PM <DIR> .
> 12/29/2015 06:13 PM 20,252,672 LTO.dll
> 12/29/2015 06:09 PM 23,375,872 libclang.dll
> 12/29/2015 06:13 PM 11,776 c-arcmt-test.exe
> 12/29/2015 06:13 PM 66,048 c-index-test.exe
> 12/29/2015 06:13 PM 28,572,160 clang++.exe
> 12/29/2015 06:12 PM 24,158,720 clang-check.exe
> 12/29/2015 06:13 PM 28,572,160 clang-cl.exe
> 12/29/2015 06:13 PM 1,018,880 clang-format.exe
> 12/29/2015 05:49 PM 407,552 clang-tblgen.exe
> 12/29/2015 06:13 PM 28,572,160 clang.exe
> 12/29/2015 06:11 PM 10,752 count.exe
> 12/29/2015 06:11 PM 2,249,216 diagtool.exe
> 12/29/2015 06:11 PM 156,672 FileCheck.exe
> 12/29/2015 06:13 PM 116,736 KillTheDoctor.exe
> 12/29/2015 06:13 PM 4,231,680 bugpoint.exe
> 12/29/2015 06:11 PM 17,424,384 llc.exe
> 12/29/2015 06:11 PM 24,064 lli-child-target.exe
> 12/29/2015 06:11 PM 8,465,920 lli.exe
> 12/29/2015 06:10 PM 10,067,968 llvm-ar.exe
> 12/29/2015 06:11 PM 1,654,272 llvm-as.exe
> 12/29/2015 06:11 PM 133,120 llvm-bcanalyzer.exe
> 12/29/2015 06:11 PM 16,116,736 llvm-c-test.exe
> 12/29/2015 06:11 PM 88,576 llvm-config.exe
> 12/29/2015 06:11 PM 1,691,648 llvm-cov.exe
> 12/29/2015 06:13 PM 6,784,512 arcmt-test.exe
> 12/29/2015 06:11 PM 1,574,400 llvm-diff.exe
> 12/29/2015 06:12 PM 1,410,560 llvm-dis.exe
> 12/29/2015 06:12 PM 14,686,208 llvm-dsymutil.exe
> 12/29/2015 06:12 PM 1,689,088 llvm-dwarfdump.exe
> 12/29/2015 06:12 PM 14,516,224 llvm-dwp.exe
> 12/29/2015 06:12 PM 1,918,976 llvm-extract.exe
> 12/29/2015 06:12 PM 10,067,968 llvm-lib.exe
> 12/29/2015 06:12 PM 1,867,264 llvm-link.exe
> 12/29/2015 06:13 PM 131,584 yaml-bench.exe
> 12/29/2015 06:12 PM 18,317,312 llvm-lto.exe
> 12/29/2015 06:12 PM 11,548,160 llvm-mc.exe
> 12/29/2015 06:12 PM 113,664 llvm-mcmarkup.exe
> 12/29/2015 06:12 PM 10,068,992 llvm-nm.exe
> 12/29/2015 06:12 PM 9,342,976 llvm-objdump.exe
> 12/29/2015 06:12 PM 173,568 llvm-pdbdump.exe
> 12/29/2015 06:11 PM 17,408 llvm-PerfectShuffle.exe
> 12/29/2015 06:12 PM 258,048 llvm-profdata.exe
> 12/29/2015 06:12 PM 10,067,968 llvm-ranlib.exe
> 12/29/2015 06:12 PM 1,780,736 llvm-readobj.exe
> 12/29/2015 06:12 PM 7,938,048 llvm-rtdyld.exe
> 12/29/2015 06:12 PM 1,612,288 llvm-size.exe
> 12/29/2015 06:13 PM 1,857,024 llvm-split.exe
> 12/29/2015 06:13 PM 1,407,488 llvm-stress.exe
> 12/29/2015 06:13 PM 1,716,736 llvm-symbolizer.exe
> 12/29/2015 05:49 PM 880,128 llvm-tblgen.exe
> 12/29/2015 06:11 PM 1,616,896 llvm-cxxdump.exe
> 12/29/2015 06:13 PM 45,568 not.exe
> 12/29/2015 06:13 PM 1,669,120 obj2yaml.exe
> 12/29/2015 06:13 PM 16,232,960 opt.exe
> 12/29/2015 06:13 PM 9,174,016 sancov.exe
> 12/29/2015 06:13 PM 1,743,360 verify-uselistorder.exe
> 12/29/2015 06:13 PM 267,264 yaml2obj.exe
> 58 File(s) 379,937,940 bytes
> 2 Dir(s) 57,060,495,360 bytes free
>
>
>
>
> RelWithDebInfo build:
>
> Directory of C:\LLVM\build\RelWithDebInfo\bin
>
> 12/29/2015 07:11 PM <DIR> ..
> 12/29/2015 07:11 PM <DIR> .
> 12/29/2015 07:01 PM 42,237,952 libclang.dll
> 12/29/2015 07:11 PM 31,601,664 LTO.dll
> 12/29/2015 07:05 PM 46,592 llvm-PerfectShuffle.exe
> 12/29/2015 07:09 PM 9,820,672 bugpoint.exe
> 12/29/2015 07:07 PM 15,648,768 llvm-nm.exe
> 12/29/2015 07:11 PM 669,184 yaml2obj.exe
> 12/29/2015 07:09 PM 26,624 c-arcmt-test.exe
> 12/29/2015 07:07 PM 385,024 llvm-mcmarkup.exe
> 12/29/2015 07:08 PM 3,061,760 llvm-profdata.exe
> 12/29/2015 07:09 PM 101,888 c-index-test.exe
> 12/29/2015 07:07 PM 18,080,768 llvm-mc.exe
> 12/29/2015 07:10 PM 457,216 yaml-bench.exe
> 12/29/2015 07:11 PM 48,616,960 clang++.exe
> 12/29/2015 07:06 PM 41,145,856 clang-check.exe
> 12/29/2015 07:07 PM 29,203,456 llvm-lto.exe
> 12/29/2015 07:08 PM 15,673,856 llvm-ranlib.exe
> 12/29/2015 07:11 PM 48,616,960 clang-cl.exe
> 12/29/2015 07:10 PM 1,971,200 clang-format.exe
> 12/29/2015 07:08 PM 3,998,720 llvm-readobj.exe
> 12/29/2015 07:10 PM 3,820,544 verify-uselistorder.exe
> 12/29/2015 06:28 PM 1,062,912 clang-tblgen.exe
> 12/29/2015 07:07 PM 4,417,024 llvm-link.exe
> 12/29/2015 07:07 PM 15,673,856 llvm-lib.exe
> 12/29/2015 07:10 PM 48,616,960 clang.exe
> 12/29/2015 07:08 PM 13,509,632 llvm-objdump.exe
> 12/29/2015 07:10 PM 13,246,976 sancov.exe
> 12/29/2015 07:03 PM 25,088 count.exe
> 12/29/2015 07:08 PM 13,311,488 llvm-rtdyld.exe
> 12/29/2015 07:07 PM 23,793,664 llvm-dwp.exe
> 12/29/2015 07:03 PM 12,695,552 diagtool.exe
> 12/29/2015 07:06 PM 3,796,480 llvm-dwarfdump.exe
> 12/29/2015 07:09 PM 26,816,000 opt.exe
> 12/29/2015 07:06 PM 455,168 FileCheck.exe
> 12/29/2015 07:08 PM 3,678,208 llvm-size.exe
> 12/29/2015 07:06 PM 23,938,560 llvm-dsymutil.exe
> 12/29/2015 07:08 PM 381,952 KillTheDoctor.exe
> 12/29/2015 07:06 PM 3,122,176 llvm-dis.exe
> 12/29/2015 07:09 PM 3,852,288 obj2yaml.exe
> 12/29/2015 07:09 PM 14,534,144 arcmt-test.exe
> 12/29/2015 07:08 PM 4,709,376 llvm-split.exe
> 12/29/2015 07:05 PM 3,510,272 llvm-diff.exe
> 12/29/2015 07:04 PM 27,583,488 llc.exe
> 12/29/2015 07:05 PM 3,719,168 llvm-cxxdump.exe
> 12/29/2015 07:08 PM 230,912 not.exe
> 12/29/2015 07:05 PM 235,520 lli-child-target.exe
> 12/29/2015 07:08 PM 3,215,872 llvm-stress.exe
> 12/29/2015 07:05 PM 3,860,480 llvm-cov.exe
> 12/29/2015 07:04 PM 14,628,352 lli.exe
> 12/29/2015 07:05 PM 340,480 llvm-config.exe
> 12/29/2015 07:07 PM 4,435,456 llvm-extract.exe
> 12/29/2015 07:02 PM 15,673,856 llvm-ar.exe
> 12/29/2015 07:08 PM 3,876,864 llvm-symbolizer.exe
> 12/29/2015 07:05 PM 25,534,464 llvm-c-test.exe
> 12/29/2015 07:05 PM 3,653,632 llvm-as.exe
> 12/29/2015 07:08 PM 500,736 llvm-pdbdump.exe
> 12/29/2015 06:28 PM 2,048,512 llvm-tblgen.exe
> 12/29/2015 07:05 PM 412,672 llvm-bcanalyzer.exe
> 164 File(s) 4,263,025,004 bytes
> 2 Dir(s) 50,662,363,136 bytes free
> `````
Here's the second batch of stats, also mostly for my own reference. This is ****WITHOUT**** the patch:
```
RelWithDebInfo build:
Directory of C:\LLVM\build\RelWithDebInfo\bin
12/29/2015 08:43 PM <DIR> ..
12/29/2015 08:43 PM <DIR> .
12/29/2015 08:34 PM 42,237,952 libclang.dll
12/29/2015 08:42 PM 31,601,664 LTO.dll
12/29/2015 08:37 PM 46,592 llvm-PerfectShuffle.exe
12/29/2015 08:41 PM 9,820,672 bugpoint.exe
12/29/2015 08:39 PM 15,648,768 llvm-nm.exe
12/29/2015 08:41 PM 669,184 yaml2obj.exe
12/29/2015 08:41 PM 26,624 c-arcmt-test.exe
12/29/2015 08:39 PM 385,024 llvm-mcmarkup.exe
12/29/2015 08:40 PM 3,061,760 llvm-profdata.exe
12/29/2015 08:41 PM 101,888 c-index-test.exe
12/29/2015 08:39 PM 18,080,768 llvm-mc.exe
12/29/2015 08:41 PM 457,216 yaml-bench.exe
12/29/2015 08:43 PM 48,616,960 clang++.exe
12/29/2015 08:38 PM 41,145,856 clang-check.exe
12/29/2015 08:39 PM 29,203,456 llvm-lto.exe
12/29/2015 08:40 PM 15,673,856 llvm-ranlib.exe
12/29/2015 08:43 PM 48,616,960 clang-cl.exe
12/29/2015 08:41 PM 1,971,200 clang-format.exe
12/29/2015 08:40 PM 3,998,720 llvm-readobj.exe
12/29/2015 08:41 PM 3,820,544 verify-uselistorder.exe
12/29/2015 08:02 PM 1,062,912 clang-tblgen.exe
12/29/2015 08:39 PM 4,417,024 llvm-link.exe
12/29/2015 08:39 PM 15,673,856 llvm-lib.exe
12/29/2015 08:43 PM 48,616,960 clang.exe
12/29/2015 08:40 PM 13,509,632 llvm-objdump.exe
12/29/2015 08:41 PM 13,246,976 sancov.exe
12/29/2015 08:36 PM 25,088 count.exe
12/29/2015 08:40 PM 13,311,488 llvm-rtdyld.exe
12/29/2015 08:38 PM 23,793,664 llvm-dwp.exe
12/29/2015 08:36 PM 12,695,552 diagtool.exe
12/29/2015 08:38 PM 3,796,480 llvm-dwarfdump.exe
12/29/2015 08:41 PM 26,816,000 opt.exe
12/29/2015 08:36 PM 455,168 FileCheck.exe
12/29/2015 08:40 PM 3,678,208 llvm-size.exe
12/29/2015 08:38 PM 23,938,560 llvm-dsymutil.exe
12/29/2015 08:40 PM 381,952 KillTheDoctor.exe
12/29/2015 08:37 PM 3,122,176 llvm-dis.exe
12/29/2015 08:40 PM 3,852,288 obj2yaml.exe
12/29/2015 08:41 PM 14,534,144 arcmt-test.exe
12/29/2015 08:40 PM 4,709,376 llvm-split.exe
12/29/2015 08:37 PM 3,510,272 llvm-diff.exe
12/29/2015 08:37 PM 27,583,488 llc.exe
12/29/2015 08:37 PM 3,719,168 llvm-cxxdump.exe
12/29/2015 08:40 PM 230,912 not.exe
12/29/2015 08:37 PM 235,520 lli-child-target.exe
12/29/2015 08:40 PM 3,215,872 llvm-stress.exe
12/29/2015 08:37 PM 3,860,480 llvm-cov.exe
12/29/2015 08:37 PM 14,628,352 lli.exe
12/29/2015 08:37 PM 340,480 llvm-config.exe
12/29/2015 08:38 PM 4,435,456 llvm-extract.exe
12/29/2015 08:32 PM 15,673,856 llvm-ar.exe
12/29/2015 08:40 PM 3,876,864 llvm-symbolizer.exe
12/29/2015 08:37 PM 25,534,464 llvm-c-test.exe
12/29/2015 08:37 PM 3,653,632 llvm-as.exe
12/29/2015 08:40 PM 500,736 llvm-pdbdump.exe
12/29/2015 08:02 PM 2,048,512 llvm-tblgen.exe
12/29/2015 08:37 PM 412,672 llvm-bcanalyzer.exe
164 File(s) 4,263,172,460 bytes
2 Dir(s) 50,375,655,424 bytes free
Release build:
Directory of C:\LLVM\build\Release\bin
12/30/2015 02:29 AM <DIR> ..
12/30/2015 02:29 AM <DIR> .
12/30/2015 02:29 AM 23,004,160 LTO.dll
12/30/2015 02:27 AM 27,575,296 libclang.dll
12/30/2015 02:29 AM 11,776 c-arcmt-test.exe
12/30/2015 02:29 AM 74,240 c-index-test.exe
12/30/2015 02:29 AM 34,474,496 clang++.exe
12/30/2015 02:28 AM 28,597,248 clang-check.exe
12/30/2015 02:29 AM 34,474,496 clang-cl.exe
12/30/2015 02:29 AM 1,206,272 clang-format.exe
12/30/2015 01:41 AM 636,416 clang-tblgen.exe
12/30/2015 02:29 AM 34,474,496 clang.exe
12/30/2015 02:02 AM 10,752 count.exe
12/30/2015 02:27 AM 2,692,096 diagtool.exe
12/30/2015 02:02 AM 199,168 FileCheck.exe
12/30/2015 02:02 AM 144,384 KillTheDoctor.exe
12/30/2015 02:29 AM 5,304,320 bugpoint.exe
12/30/2015 02:27 AM 19,832,320 llc.exe
12/30/2015 02:02 AM 25,088 lli-child-target.exe
12/30/2015 02:27 AM 9,769,472 lli.exe
12/30/2015 02:27 AM 10,468,864 llvm-ar.exe
12/30/2015 02:27 AM 1,691,648 llvm-as.exe
12/30/2015 02:28 AM 165,888 llvm-bcanalyzer.exe
12/30/2015 02:28 AM 18,173,952 llvm-c-test.exe
12/30/2015 02:02 AM 103,936 llvm-config.exe
12/30/2015 02:28 AM 1,687,040 llvm-cov.exe
12/30/2015 02:29 AM 8,776,704 arcmt-test.exe
12/30/2015 02:28 AM 1,570,304 llvm-diff.exe
12/30/2015 02:28 AM 1,326,080 llvm-dis.exe
12/30/2015 02:28 AM 16,863,232 llvm-dsymutil.exe
12/30/2015 02:28 AM 1,675,264 llvm-dwarfdump.exe
12/30/2015 02:28 AM 16,630,784 llvm-dwp.exe
12/30/2015 02:28 AM 2,025,472 llvm-extract.exe
12/30/2015 02:28 AM 10,468,864 llvm-lib.exe
12/30/2015 02:28 AM 1,961,472 llvm-link.exe
12/30/2015 02:02 AM 173,568 yaml-bench.exe
12/30/2015 02:28 AM 21,027,840 llvm-lto.exe
12/30/2015 02:28 AM 11,923,968 llvm-mc.exe
12/30/2015 02:02 AM 144,384 llvm-mcmarkup.exe
12/30/2015 02:28 AM 10,464,256 llvm-nm.exe
12/30/2015 02:28 AM 9,658,880 llvm-objdump.exe
12/30/2015 02:28 AM 215,040 llvm-pdbdump.exe
12/30/2015 02:02 AM 18,432 llvm-PerfectShuffle.exe
12/30/2015 02:29 AM 325,632 llvm-profdata.exe
12/30/2015 02:28 AM 10,468,864 llvm-ranlib.exe
12/30/2015 02:29 AM 1,805,824 llvm-readobj.exe
12/30/2015 02:29 AM 8,293,888 llvm-rtdyld.exe
12/30/2015 02:29 AM 1,575,936 llvm-size.exe
12/30/2015 02:29 AM 1,929,728 llvm-split.exe
12/30/2015 02:29 AM 1,341,440 llvm-stress.exe
12/30/2015 02:29 AM 1,714,176 llvm-symbolizer.exe
12/30/2015 01:41 AM 1,300,992 llvm-tblgen.exe
12/30/2015 02:28 AM 1,580,544 llvm-cxxdump.exe
12/30/2015 02:02 AM 52,224 not.exe
12/30/2015 02:29 AM 1,660,928 obj2yaml.exe
12/30/2015 02:29 AM 19,069,952 opt.exe
12/30/2015 02:29 AM 9,402,368 sancov.exe
12/30/2015 02:29 AM 1,809,920 verify-uselistorder.exe
12/30/2015 02:29 AM 352,256 yaml2obj.exe
58 File(s) 432,408,721 bytes
2 Dir(s) 56,124,084,224 bytes free
MinSizeRel build:
Directory of C:\LLVM\build\MinSizeRel\bin
12/31/2015 11:02 PM <DIR> ..
12/31/2015 11:02 PM <DIR> .
12/31/2015 11:01 PM 20,337,664 LTO.dll
12/31/2015 10:58 PM 23,514,624 libclang.dll
12/31/2015 11:01 PM 11,776 c-arcmt-test.exe
12/31/2015 11:01 PM 66,048 c-index-test.exe
12/31/2015 11:02 PM 28,683,264 clang++.exe
12/31/2015 11:00 PM 24,313,856 clang-check.exe
12/31/2015 11:02 PM 28,683,264 clang-cl.exe
12/31/2015 11:01 PM 1,030,144 clang-format.exe
12/31/2015 10:41 PM 427,008 clang-tblgen.exe
12/31/2015 11:01 PM 28,683,264 clang.exe
12/31/2015 10:59 PM 10,752 count.exe
12/31/2015 10:59 PM 2,280,960 diagtool.exe
12/31/2015 10:59 PM 160,768 FileCheck.exe
12/31/2015 11:01 PM 120,832 KillTheDoctor.exe
12/31/2015 11:01 PM 4,200,960 bugpoint.exe
12/31/2015 10:59 PM 17,507,328 llc.exe
12/31/2015 10:59 PM 24,064 lli-child-target.exe
12/31/2015 10:59 PM 8,457,728 lli.exe
12/31/2015 10:57 PM 10,115,072 llvm-ar.exe
12/31/2015 11:00 PM 1,603,584 llvm-as.exe
12/31/2015 11:00 PM 137,728 llvm-bcanalyzer.exe
12/31/2015 11:00 PM 16,118,272 llvm-c-test.exe
12/31/2015 11:00 PM 93,184 llvm-config.exe
12/31/2015 11:00 PM 1,645,568 llvm-cov.exe
12/31/2015 11:01 PM 6,843,904 arcmt-test.exe
12/31/2015 11:00 PM 1,523,712 llvm-diff.exe
12/31/2015 11:00 PM 1,359,872 llvm-dis.exe
12/31/2015 11:00 PM 14,695,424 llvm-dsymutil.exe
12/31/2015 11:00 PM 1,641,984 llvm-dwarfdump.exe
12/31/2015 11:00 PM 14,522,368 llvm-dwp.exe
12/31/2015 11:00 PM 1,870,336 llvm-extract.exe
12/31/2015 11:00 PM 10,115,072 llvm-lib.exe
12/31/2015 11:00 PM 1,819,136 llvm-link.exe
12/31/2015 11:01 PM 136,192 yaml-bench.exe
12/31/2015 11:00 PM 18,402,816 llvm-lto.exe
12/31/2015 11:00 PM 11,592,704 llvm-mc.exe
12/31/2015 11:00 PM 117,760 llvm-mcmarkup.exe
12/31/2015 11:00 PM 10,116,096 llvm-nm.exe
12/31/2015 11:00 PM 9,341,440 llvm-objdump.exe
12/31/2015 11:00 PM 177,664 llvm-pdbdump.exe
12/31/2015 10:59 PM 17,920 llvm-PerfectShuffle.exe
12/31/2015 11:01 PM 264,192 llvm-profdata.exe
12/31/2015 11:01 PM 10,115,072 llvm-ranlib.exe
12/31/2015 11:01 PM 1,775,104 llvm-readobj.exe
12/31/2015 11:01 PM 7,966,720 llvm-rtdyld.exe
12/31/2015 11:01 PM 1,566,208 llvm-size.exe
12/31/2015 11:01 PM 1,805,312 llvm-split.exe
12/31/2015 11:01 PM 1,354,752 llvm-stress.exe
12/31/2015 11:01 PM 1,670,144 llvm-symbolizer.exe
12/31/2015 10:41 PM 922,624 llvm-tblgen.exe
12/31/2015 11:00 PM 1,568,768 llvm-cxxdump.exe
12/31/2015 11:01 PM 45,568 not.exe
12/31/2015 11:01 PM 1,622,528 obj2yaml.exe
12/31/2015 11:01 PM 16,254,464 opt.exe
12/31/2015 11:01 PM 9,148,416 sancov.exe
12/31/2015 11:01 PM 1,693,184 verify-uselistorder.exe
12/31/2015 11:01 PM 274,432 yaml2obj.exe
58 File(s) 380,571,284 bytes
2 Dir(s) 56,083,685,376 bytes free
Debug build:
Directory of C:\LLVM\build\Debug\bin
01/01/2016 03:24 AM <DIR> ..
01/01/2016 03:24 AM <DIR> .
01/01/2016 03:11 AM 90,830,336 libclang.dll
01/01/2016 03:22 AM 59,970,560 LTO.dll
01/01/2016 03:22 AM 1,582,592 yaml2obj.exe
01/01/2016 03:21 AM 1,041,920 yaml-bench.exe
01/01/2016 03:21 AM 24,452,608 bugpoint.exe
01/01/2016 03:21 AM 7,279,104 verify-uselistorder.exe
01/01/2016 03:20 AM 20,070,912 sancov.exe
01/01/2016 03:21 AM 39,936 c-arcmt-test.exe
01/01/2016 03:20 AM 55,005,184 opt.exe
01/01/2016 03:19 AM 7,520,768 obj2yaml.exe
01/01/2016 03:21 AM 157,184 c-index-test.exe
01/01/2016 03:19 AM 804,352 not.exe
01/01/2016 03:21 AM 37,114,880 arcmt-test.exe
01/01/2016 03:24 AM 107,311,104 clang++.exe
01/01/2016 03:16 AM 86,434,304 clang-check.exe
01/01/2016 02:04 AM 6,412,800 llvm-tblgen.exe
01/01/2016 03:19 AM 7,889,408 llvm-symbolizer.exe
01/01/2016 03:24 AM 107,311,104 clang-cl.exe
01/01/2016 03:22 AM 4,373,504 clang-format.exe
12/28/2015 01:15 AM 77,312 a.exe
01/01/2016 03:19 AM 10,030,080 llvm-split.exe
01/01/2016 02:04 AM 2,584,064 clang-tblgen.exe
01/01/2016 03:19 AM 7,030,784 llvm-size.exe
01/01/2016 03:19 AM 20,128,256 llvm-rtdyld.exe
01/01/2016 03:23 AM 107,311,104 clang.exe
01/01/2016 03:19 AM 7,612,928 llvm-readobj.exe
01/01/2016 03:19 AM 26,210,816 llvm-ranlib.exe
01/01/2016 03:12 AM 37,888 count.exe
01/01/2016 03:19 AM 5,340,672 llvm-profdata.exe
01/01/2016 03:13 AM 86,528 llvm-PerfectShuffle.exe
01/01/2016 03:12 AM 30,198,784 diagtool.exe
01/01/2016 03:19 AM 1,248,768 llvm-pdbdump.exe
01/01/2016 03:18 AM 20,229,120 llvm-objdump.exe
01/01/2016 03:12 AM 1,050,112 FileCheck.exe
01/01/2016 03:18 AM 26,081,792 llvm-nm.exe
01/01/2016 03:18 AM 869,888 llvm-mcmarkup.exe
01/01/2016 03:19 AM 858,112 KillTheDoctor.exe
01/01/2016 03:18 AM 29,020,672 llvm-mc.exe
01/01/2016 03:18 AM 57,073,152 llvm-lto.exe
01/01/2016 03:19 AM 5,646,336 llvm-stress.exe
01/01/2016 03:17 AM 8,892,928 llvm-link.exe
01/01/2016 03:17 AM 26,210,816 llvm-lib.exe
01/01/2016 03:13 AM 52,477,440 llc.exe
01/01/2016 03:17 AM 9,280,512 llvm-extract.exe
01/01/2016 03:17 AM 47,185,920 llvm-dwp.exe
01/01/2016 03:13 AM 819,712 lli-child-target.exe
01/01/2016 03:16 AM 7,541,248 llvm-dwarfdump.exe
01/01/2016 03:17 AM 47,682,560 llvm-dsymutil.exe
01/01/2016 03:13 AM 31,242,240 lli.exe
01/01/2016 03:15 AM 5,601,280 llvm-dis.exe
01/01/2016 03:15 AM 6,572,032 llvm-diff.exe
01/01/2016 03:08 AM 26,210,816 llvm-ar.exe
01/01/2016 03:14 AM 7,368,192 llvm-cxxdump.exe
01/01/2016 03:14 AM 7,678,976 llvm-cov.exe
01/01/2016 03:13 AM 6,724,608 llvm-as.exe
01/01/2016 03:14 AM 934,912 llvm-config.exe
01/01/2016 03:14 AM 48,035,840 llvm-c-test.exe
01/01/2016 03:14 AM 978,432 llvm-bcanalyzer.exe
165 File(s) 8,743,874,399 bytes
2 Dir(s) 40,522,027,008 bytes free
```
================
Comment at: cmake/modules/HandleLLVMOptions.cmake:369
@@ +368,3 @@
+ # Eliminate Duplicate Strings
+ append("/GF" CMAKE_C_FLAGS CMAKE_CXX_FLAGS)
+
----------------
ariccio wrote:
> ariccio wrote:
> > aaron.ballman wrote:
> > > ariccio wrote:
> > > > aaron.ballman wrote:
> > > > > >> I think this one is reasonable, but I worry about it requiring use of /bigobj.
> > > > > > MSVC didn't complain about it in the debug build, so my guess is that this isn't a problem, but I'll compile a release build - optimizations might somehow pack more strings into a single image? - and see if it causes problems there. Can you think of any situation that might actually include more than 65,536 strings?
> > > > >
> > > > > From MSDN:
> > > > >
> > > > > > The /GF compiler option creates an addressable section for each unique string. And by default, an object file can contain up to 65,536 addressable sections. If your program contains more than 65,536 strings, use the /bigobj compiler option to create more sections.
> > > > >
> > > > > The compiler has a lot of unique strings, which means that this option will create a lot of addressable sections. My gut feeling (not based on any research) is that our duplicate string literals are generally going to be short strings, and not repeated overly often. I would guess that our unique string literals dwarf the duplicates, and this is unlikely to have a huge size savings, but may push us over the bigobj limit.
> > > > >
> > > > > >> What are the size differences for our executables with this option disabled vs enabled?
> > > > > > Ok, I'm embarrassed to say it, but I don't have any data for this. LLVM just takes too long to compile for me to check the executable size for such a small patch. Is that reasonable, or should I actually compare them?
> > > > >
> > > > > You should actually compare them. When changing the compiler switches like this, you want to make sure that (1) the projects all still compile (perhaps there are code changes required to enable these flags), and (2) that check-all still runs cleanly (code could have been unintentionally relying on a particular optimization strategy, there are optimizer bugs, etc). This also lets you get the size statistics as well.
> > > > Before anything: (1), and (2) still pass - on my machine, two check-all tests fail before and after, because Python.exe is in a path that contains spaces.
> > > >
> > > > > This also lets you get the size statistics as well.
> > > >
> > > > Any tips on how to get the size stats? Surely, there's a better way to do it than manually?
> > > >
> > > >
> > > While an automated tool may exist, I am unaware of one. I would just do it manually, but I'm on Windows where the libraries are static instead of dynamic, so I would only have to look at the resulting .exe files. On other platforms, a quick and dirty script might be easiest.
> > Here's the first batch of stats. It's mostly for my own reference at the moment:
> >
> >
> > ```
> > `Release build with patch:
> >
> > Directory of C:\LLVM\build\Release\bin
> >
> > 12/27/2015 10:24 PM <DIR> ..
> > 12/27/2015 10:24 PM <DIR> .
> > 12/27/2015 10:24 PM 23,004,160 LTO.dll
> > 12/27/2015 10:21 PM 27,575,296 libclang.dll
> > 12/27/2015 10:23 PM 11,776 c-arcmt-test.exe
> > 12/27/2015 10:23 PM 74,240 c-index-test.exe
> > 12/27/2015 10:24 PM 34,473,984 clang++.exe
> > 12/27/2015 10:22 PM 28,597,248 clang-check.exe
> > 12/27/2015 10:24 PM 34,473,984 clang-cl.exe
> > 12/27/2015 10:23 PM 1,206,272 clang-format.exe
> > 12/27/2015 09:26 PM 636,416 clang-tblgen.exe
> > 12/27/2015 10:24 PM 34,473,984 clang.exe
> > 12/27/2015 09:49 PM 10,752 count.exe
> > 12/27/2015 10:21 PM 2,692,096 diagtool.exe
> > 12/27/2015 09:49 PM 199,168 FileCheck.exe
> > 12/27/2015 09:49 PM 144,384 KillTheDoctor.exe
> > 12/27/2015 10:23 PM 5,304,832 bugpoint.exe
> > 12/27/2015 10:21 PM 19,832,320 llc.exe
> > 12/27/2015 09:49 PM 25,088 lli-child-target.exe
> > 12/27/2015 10:21 PM 9,769,472 lli.exe
> > 12/27/2015 10:21 PM 10,468,864 llvm-ar.exe
> > 12/27/2015 10:21 PM 1,691,648 llvm-as.exe
> > 12/27/2015 10:21 PM 165,888 llvm-bcanalyzer.exe
> > 12/27/2015 10:21 PM 18,173,952 llvm-c-test.exe
> > 12/27/2015 09:49 PM 103,936 llvm-config.exe
> > 12/27/2015 10:21 PM 1,687,040 llvm-cov.exe
> > 12/27/2015 10:23 PM 8,776,704 arcmt-test.exe
> > 12/27/2015 10:21 PM 1,570,304 llvm-diff.exe
> > 12/27/2015 10:22 PM 1,326,080 llvm-dis.exe
> > 12/27/2015 10:22 PM 16,863,232 llvm-dsymutil.exe
> > 12/27/2015 10:22 PM 1,675,264 llvm-dwarfdump.exe
> > 12/27/2015 10:22 PM 16,630,784 llvm-dwp.exe
> > 12/27/2015 10:22 PM 2,025,472 llvm-extract.exe
> > 12/27/2015 10:22 PM 10,468,864 llvm-lib.exe
> > 12/27/2015 10:22 PM 1,961,472 llvm-link.exe
> > 12/27/2015 09:49 PM 173,568 yaml-bench.exe
> > 12/27/2015 10:22 PM 21,027,840 llvm-lto.exe
> > 12/27/2015 10:22 PM 11,923,968 llvm-mc.exe
> > 12/27/2015 09:49 PM 144,384 llvm-mcmarkup.exe
> > 12/27/2015 10:22 PM 10,464,256 llvm-nm.exe
> > 12/27/2015 10:22 PM 9,658,880 llvm-objdump.exe
> > 12/27/2015 10:22 PM 215,040 llvm-pdbdump.exe
> > 12/27/2015 09:49 PM 18,432 llvm-PerfectShuffle.exe
> > 12/27/2015 10:22 PM 325,632 llvm-profdata.exe
> > 12/27/2015 10:22 PM 10,468,864 llvm-ranlib.exe
> > 12/27/2015 10:22 PM 1,805,824 llvm-readobj.exe
> > 12/27/2015 10:23 PM 8,293,888 llvm-rtdyld.exe
> > 12/27/2015 10:23 PM 1,575,936 llvm-size.exe
> > 12/27/2015 10:23 PM 1,929,728 llvm-split.exe
> > 12/27/2015 10:23 PM 1,341,440 llvm-stress.exe
> > 12/27/2015 10:23 PM 1,714,176 llvm-symbolizer.exe
> > 12/27/2015 09:26 PM 1,300,992 llvm-tblgen.exe
> > 12/27/2015 10:21 PM 1,580,544 llvm-cxxdump.exe
> > 12/27/2015 09:49 PM 52,224 not.exe
> > 12/27/2015 10:23 PM 1,660,928 obj2yaml.exe
> > 12/27/2015 10:23 PM 19,069,952 opt.exe
> > 12/27/2015 10:23 PM 9,402,368 sancov.exe
> > 12/27/2015 10:23 PM 1,809,920 verify-uselistorder.exe
> > 12/27/2015 10:23 PM 352,256 yaml2obj.exe
> > 58 File(s) 432,407,697 bytes
> > 2 Dir(s) 37,355,769,856 bytes free
> >
> >
> >
> >
> >
> >
> > Debug build with patch:
> >
> > Directory of C:\LLVM\build\Debug\bin
> >
> > 12/28/2015 06:56 PM <DIR> ..
> > 12/28/2015 06:56 PM <DIR> .
> > 12/27/2015 04:08 AM 87,031,808 libclang.dll
> > 12/27/2015 04:17 AM 57,349,120 LTO.dll
> > 12/27/2015 04:14 AM 1,549,824 yaml2obj.exe
> > 12/27/2015 04:14 AM 1,019,392 yaml-bench.exe
> > 12/27/2015 04:04 AM 23,538,688 bugpoint.exe
> > 12/27/2015 04:11 AM 7,152,128 verify-uselistorder.exe
> > 12/27/2015 04:10 AM 19,379,712 sancov.exe
> > 12/27/2015 04:10 AM 39,424 c-arcmt-test.exe
> > 12/27/2015 04:11 AM 52,358,144 opt.exe
> > 12/27/2015 04:10 AM 7,360,512 obj2yaml.exe
> > 12/27/2015 04:10 AM 159,232 c-index-test.exe
> > 12/27/2015 04:10 AM 783,360 not.exe
> > 12/27/2015 04:16 AM 35,772,416 arcmt-test.exe
> > 12/27/2015 04:15 AM 102,623,232 clang++.exe
> > 12/27/2015 04:14 AM 82,458,624 clang-check.exe
> > 12/27/2015 02:39 AM 6,316,032 llvm-tblgen.exe
> > 12/27/2015 04:10 AM 7,760,384 llvm-symbolizer.exe
> > 12/27/2015 04:15 AM 102,623,232 clang-cl.exe
> > 12/27/2015 04:14 AM 4,243,456 clang-format.exe
> > 12/28/2015 01:15 AM 77,312 a.exe
> > 12/27/2015 04:10 AM 9,785,344 llvm-split.exe
> > 12/27/2015 02:39 AM 2,542,080 clang-tblgen.exe
> > 12/27/2015 04:09 AM 6,902,272 llvm-size.exe
> > 12/27/2015 04:09 AM 19,422,208 llvm-rtdyld.exe
> > 12/27/2015 04:14 AM 102,623,232 clang.exe
> > 12/27/2015 04:09 AM 7,448,064 llvm-readobj.exe
> > 12/27/2015 04:09 AM 25,309,184 llvm-ranlib.exe
> > 12/27/2015 04:17 AM 37,888 count.exe
> > 12/27/2015 04:09 AM 5,266,432 llvm-profdata.exe
> > 12/24/2015 04:17 PM 86,016 llvm-PerfectShuffle.exe
> > 12/27/2015 04:18 AM 28,745,728 diagtool.exe
> > 12/27/2015 04:07 AM 1,226,752 llvm-pdbdump.exe
> > 12/27/2015 04:25 AM 19,498,496 llvm-objdump.exe
> > 12/27/2015 04:09 AM 1,027,584 FileCheck.exe
> > 12/27/2015 04:24 AM 25,182,720 llvm-nm.exe
> > 12/27/2015 04:24 AM 848,384 llvm-mcmarkup.exe
> > 12/24/2015 05:42 PM 837,120 KillTheDoctor.exe
> > 12/27/2015 04:23 AM 28,077,056 llvm-mc.exe
> > 12/27/2015 04:24 AM 54,491,136 llvm-lto.exe
> > 12/24/2015 05:41 PM 5,568,512 llvm-stress.exe
> > 12/27/2015 04:23 AM 8,723,456 llvm-link.exe
> > 12/27/2015 04:22 AM 25,309,184 llvm-lib.exe
> > 12/27/2015 04:19 AM 50,145,792 llc.exe
> > 12/27/2015 04:23 AM 9,079,808 llvm-extract.exe
> > 12/27/2015 04:22 AM 44,934,144 llvm-dwp.exe
> > 12/27/2015 04:19 AM 796,160 lli-child-target.exe
> > 12/27/2015 04:21 AM 7,410,688 llvm-dwarfdump.exe
> > 12/27/2015 04:22 AM 45,424,128 llvm-dsymutil.exe
> > 12/27/2015 04:19 AM 30,037,504 lli.exe
> > 12/27/2015 04:21 AM 5,511,168 llvm-dis.exe
> > 12/27/2015 04:21 AM 6,457,344 llvm-diff.exe
> > 12/27/2015 04:06 AM 25,309,184 llvm-ar.exe
> > 12/27/2015 04:20 AM 7,239,680 llvm-cxxdump.exe
> > 12/27/2015 04:20 AM 7,549,440 llvm-cov.exe
> > 12/27/2015 04:19 AM 6,613,504 llvm-as.exe
> > 12/27/2015 04:20 AM 906,752 llvm-config.exe
> > 12/27/2015 04:20 AM 45,832,704 llvm-c-test.exe
> > 12/27/2015 04:19 AM 954,880 llvm-bcanalyzer.exe
> > 165 File(s) 9,042,836,639 bytes
> > 2 Dir(s) 37,355,757,568 bytes free
> >
> >
> >
> >
> >
> > MinSizeRel build with patch:
> >
> > Directory of C:\LLVM\build\MinSizeRel\bin
> >
> > 12/29/2015 06:13 PM <DIR> ..
> > 12/29/2015 06:13 PM <DIR> .
> > 12/29/2015 06:13 PM 20,252,672 LTO.dll
> > 12/29/2015 06:09 PM 23,375,872 libclang.dll
> > 12/29/2015 06:13 PM 11,776 c-arcmt-test.exe
> > 12/29/2015 06:13 PM 66,048 c-index-test.exe
> > 12/29/2015 06:13 PM 28,572,160 clang++.exe
> > 12/29/2015 06:12 PM 24,158,720 clang-check.exe
> > 12/29/2015 06:13 PM 28,572,160 clang-cl.exe
> > 12/29/2015 06:13 PM 1,018,880 clang-format.exe
> > 12/29/2015 05:49 PM 407,552 clang-tblgen.exe
> > 12/29/2015 06:13 PM 28,572,160 clang.exe
> > 12/29/2015 06:11 PM 10,752 count.exe
> > 12/29/2015 06:11 PM 2,249,216 diagtool.exe
> > 12/29/2015 06:11 PM 156,672 FileCheck.exe
> > 12/29/2015 06:13 PM 116,736 KillTheDoctor.exe
> > 12/29/2015 06:13 PM 4,231,680 bugpoint.exe
> > 12/29/2015 06:11 PM 17,424,384 llc.exe
> > 12/29/2015 06:11 PM 24,064 lli-child-target.exe
> > 12/29/2015 06:11 PM 8,465,920 lli.exe
> > 12/29/2015 06:10 PM 10,067,968 llvm-ar.exe
> > 12/29/2015 06:11 PM 1,654,272 llvm-as.exe
> > 12/29/2015 06:11 PM 133,120 llvm-bcanalyzer.exe
> > 12/29/2015 06:11 PM 16,116,736 llvm-c-test.exe
> > 12/29/2015 06:11 PM 88,576 llvm-config.exe
> > 12/29/2015 06:11 PM 1,691,648 llvm-cov.exe
> > 12/29/2015 06:13 PM 6,784,512 arcmt-test.exe
> > 12/29/2015 06:11 PM 1,574,400 llvm-diff.exe
> > 12/29/2015 06:12 PM 1,410,560 llvm-dis.exe
> > 12/29/2015 06:12 PM 14,686,208 llvm-dsymutil.exe
> > 12/29/2015 06:12 PM 1,689,088 llvm-dwarfdump.exe
> > 12/29/2015 06:12 PM 14,516,224 llvm-dwp.exe
> > 12/29/2015 06:12 PM 1,918,976 llvm-extract.exe
> > 12/29/2015 06:12 PM 10,067,968 llvm-lib.exe
> > 12/29/2015 06:12 PM 1,867,264 llvm-link.exe
> > 12/29/2015 06:13 PM 131,584 yaml-bench.exe
> > 12/29/2015 06:12 PM 18,317,312 llvm-lto.exe
> > 12/29/2015 06:12 PM 11,548,160 llvm-mc.exe
> > 12/29/2015 06:12 PM 113,664 llvm-mcmarkup.exe
> > 12/29/2015 06:12 PM 10,068,992 llvm-nm.exe
> > 12/29/2015 06:12 PM 9,342,976 llvm-objdump.exe
> > 12/29/2015 06:12 PM 173,568 llvm-pdbdump.exe
> > 12/29/2015 06:11 PM 17,408 llvm-PerfectShuffle.exe
> > 12/29/2015 06:12 PM 258,048 llvm-profdata.exe
> > 12/29/2015 06:12 PM 10,067,968 llvm-ranlib.exe
> > 12/29/2015 06:12 PM 1,780,736 llvm-readobj.exe
> > 12/29/2015 06:12 PM 7,938,048 llvm-rtdyld.exe
> > 12/29/2015 06:12 PM 1,612,288 llvm-size.exe
> > 12/29/2015 06:13 PM 1,857,024 llvm-split.exe
> > 12/29/2015 06:13 PM 1,407,488 llvm-stress.exe
> > 12/29/2015 06:13 PM 1,716,736 llvm-symbolizer.exe
> > 12/29/2015 05:49 PM 880,128 llvm-tblgen.exe
> > 12/29/2015 06:11 PM 1,616,896 llvm-cxxdump.exe
> > 12/29/2015 06:13 PM 45,568 not.exe
> > 12/29/2015 06:13 PM 1,669,120 obj2yaml.exe
> > 12/29/2015 06:13 PM 16,232,960 opt.exe
> > 12/29/2015 06:13 PM 9,174,016 sancov.exe
> > 12/29/2015 06:13 PM 1,743,360 verify-uselistorder.exe
> > 12/29/2015 06:13 PM 267,264 yaml2obj.exe
> > 58 File(s) 379,937,940 bytes
> > 2 Dir(s) 57,060,495,360 bytes free
> >
> >
> >
> >
> > RelWithDebInfo build:
> >
> > Directory of C:\LLVM\build\RelWithDebInfo\bin
> >
> > 12/29/2015 07:11 PM <DIR> ..
> > 12/29/2015 07:11 PM <DIR> .
> > 12/29/2015 07:01 PM 42,237,952 libclang.dll
> > 12/29/2015 07:11 PM 31,601,664 LTO.dll
> > 12/29/2015 07:05 PM 46,592 llvm-PerfectShuffle.exe
> > 12/29/2015 07:09 PM 9,820,672 bugpoint.exe
> > 12/29/2015 07:07 PM 15,648,768 llvm-nm.exe
> > 12/29/2015 07:11 PM 669,184 yaml2obj.exe
> > 12/29/2015 07:09 PM 26,624 c-arcmt-test.exe
> > 12/29/2015 07:07 PM 385,024 llvm-mcmarkup.exe
> > 12/29/2015 07:08 PM 3,061,760 llvm-profdata.exe
> > 12/29/2015 07:09 PM 101,888 c-index-test.exe
> > 12/29/2015 07:07 PM 18,080,768 llvm-mc.exe
> > 12/29/2015 07:10 PM 457,216 yaml-bench.exe
> > 12/29/2015 07:11 PM 48,616,960 clang++.exe
> > 12/29/2015 07:06 PM 41,145,856 clang-check.exe
> > 12/29/2015 07:07 PM 29,203,456 llvm-lto.exe
> > 12/29/2015 07:08 PM 15,673,856 llvm-ranlib.exe
> > 12/29/2015 07:11 PM 48,616,960 clang-cl.exe
> > 12/29/2015 07:10 PM 1,971,200 clang-format.exe
> > 12/29/2015 07:08 PM 3,998,720 llvm-readobj.exe
> > 12/29/2015 07:10 PM 3,820,544 verify-uselistorder.exe
> > 12/29/2015 06:28 PM 1,062,912 clang-tblgen.exe
> > 12/29/2015 07:07 PM 4,417,024 llvm-link.exe
> > 12/29/2015 07:07 PM 15,673,856 llvm-lib.exe
> > 12/29/2015 07:10 PM 48,616,960 clang.exe
> > 12/29/2015 07:08 PM 13,509,632 llvm-objdump.exe
> > 12/29/2015 07:10 PM 13,246,976 sancov.exe
> > 12/29/2015 07:03 PM 25,088 count.exe
> > 12/29/2015 07:08 PM 13,311,488 llvm-rtdyld.exe
> > 12/29/2015 07:07 PM 23,793,664 llvm-dwp.exe
> > 12/29/2015 07:03 PM 12,695,552 diagtool.exe
> > 12/29/2015 07:06 PM 3,796,480 llvm-dwarfdump.exe
> > 12/29/2015 07:09 PM 26,816,000 opt.exe
> > 12/29/2015 07:06 PM 455,168 FileCheck.exe
> > 12/29/2015 07:08 PM 3,678,208 llvm-size.exe
> > 12/29/2015 07:06 PM 23,938,560 llvm-dsymutil.exe
> > 12/29/2015 07:08 PM 381,952 KillTheDoctor.exe
> > 12/29/2015 07:06 PM 3,122,176 llvm-dis.exe
> > 12/29/2015 07:09 PM 3,852,288 obj2yaml.exe
> > 12/29/2015 07:09 PM 14,534,144 arcmt-test.exe
> > 12/29/2015 07:08 PM 4,709,376 llvm-split.exe
> > 12/29/2015 07:05 PM 3,510,272 llvm-diff.exe
> > 12/29/2015 07:04 PM 27,583,488 llc.exe
> > 12/29/2015 07:05 PM 3,719,168 llvm-cxxdump.exe
> > 12/29/2015 07:08 PM 230,912 not.exe
> > 12/29/2015 07:05 PM 235,520 lli-child-target.exe
> > 12/29/2015 07:08 PM 3,215,872 llvm-stress.exe
> > 12/29/2015 07:05 PM 3,860,480 llvm-cov.exe
> > 12/29/2015 07:04 PM 14,628,352 lli.exe
> > 12/29/2015 07:05 PM 340,480 llvm-config.exe
> > 12/29/2015 07:07 PM 4,435,456 llvm-extract.exe
> > 12/29/2015 07:02 PM 15,673,856 llvm-ar.exe
> > 12/29/2015 07:08 PM 3,876,864 llvm-symbolizer.exe
> > 12/29/2015 07:05 PM 25,534,464 llvm-c-test.exe
> > 12/29/2015 07:05 PM 3,653,632 llvm-as.exe
> > 12/29/2015 07:08 PM 500,736 llvm-pdbdump.exe
> > 12/29/2015 06:28 PM 2,048,512 llvm-tblgen.exe
> > 12/29/2015 07:05 PM 412,672 llvm-bcanalyzer.exe
> > 164 File(s) 4,263,025,004 bytes
> > 2 Dir(s) 50,662,363,136 bytes free
> > `````
> Here's the second batch of stats, also mostly for my own reference. This is ****WITHOUT**** the patch:
>
>
> ```
> RelWithDebInfo build:
>
> Directory of C:\LLVM\build\RelWithDebInfo\bin
>
> 12/29/2015 08:43 PM <DIR> ..
> 12/29/2015 08:43 PM <DIR> .
> 12/29/2015 08:34 PM 42,237,952 libclang.dll
> 12/29/2015 08:42 PM 31,601,664 LTO.dll
> 12/29/2015 08:37 PM 46,592 llvm-PerfectShuffle.exe
> 12/29/2015 08:41 PM 9,820,672 bugpoint.exe
> 12/29/2015 08:39 PM 15,648,768 llvm-nm.exe
> 12/29/2015 08:41 PM 669,184 yaml2obj.exe
> 12/29/2015 08:41 PM 26,624 c-arcmt-test.exe
> 12/29/2015 08:39 PM 385,024 llvm-mcmarkup.exe
> 12/29/2015 08:40 PM 3,061,760 llvm-profdata.exe
> 12/29/2015 08:41 PM 101,888 c-index-test.exe
> 12/29/2015 08:39 PM 18,080,768 llvm-mc.exe
> 12/29/2015 08:41 PM 457,216 yaml-bench.exe
> 12/29/2015 08:43 PM 48,616,960 clang++.exe
> 12/29/2015 08:38 PM 41,145,856 clang-check.exe
> 12/29/2015 08:39 PM 29,203,456 llvm-lto.exe
> 12/29/2015 08:40 PM 15,673,856 llvm-ranlib.exe
> 12/29/2015 08:43 PM 48,616,960 clang-cl.exe
> 12/29/2015 08:41 PM 1,971,200 clang-format.exe
> 12/29/2015 08:40 PM 3,998,720 llvm-readobj.exe
> 12/29/2015 08:41 PM 3,820,544 verify-uselistorder.exe
> 12/29/2015 08:02 PM 1,062,912 clang-tblgen.exe
> 12/29/2015 08:39 PM 4,417,024 llvm-link.exe
> 12/29/2015 08:39 PM 15,673,856 llvm-lib.exe
> 12/29/2015 08:43 PM 48,616,960 clang.exe
> 12/29/2015 08:40 PM 13,509,632 llvm-objdump.exe
> 12/29/2015 08:41 PM 13,246,976 sancov.exe
> 12/29/2015 08:36 PM 25,088 count.exe
> 12/29/2015 08:40 PM 13,311,488 llvm-rtdyld.exe
> 12/29/2015 08:38 PM 23,793,664 llvm-dwp.exe
> 12/29/2015 08:36 PM 12,695,552 diagtool.exe
> 12/29/2015 08:38 PM 3,796,480 llvm-dwarfdump.exe
> 12/29/2015 08:41 PM 26,816,000 opt.exe
> 12/29/2015 08:36 PM 455,168 FileCheck.exe
> 12/29/2015 08:40 PM 3,678,208 llvm-size.exe
> 12/29/2015 08:38 PM 23,938,560 llvm-dsymutil.exe
> 12/29/2015 08:40 PM 381,952 KillTheDoctor.exe
> 12/29/2015 08:37 PM 3,122,176 llvm-dis.exe
> 12/29/2015 08:40 PM 3,852,288 obj2yaml.exe
> 12/29/2015 08:41 PM 14,534,144 arcmt-test.exe
> 12/29/2015 08:40 PM 4,709,376 llvm-split.exe
> 12/29/2015 08:37 PM 3,510,272 llvm-diff.exe
> 12/29/2015 08:37 PM 27,583,488 llc.exe
> 12/29/2015 08:37 PM 3,719,168 llvm-cxxdump.exe
> 12/29/2015 08:40 PM 230,912 not.exe
> 12/29/2015 08:37 PM 235,520 lli-child-target.exe
> 12/29/2015 08:40 PM 3,215,872 llvm-stress.exe
> 12/29/2015 08:37 PM 3,860,480 llvm-cov.exe
> 12/29/2015 08:37 PM 14,628,352 lli.exe
> 12/29/2015 08:37 PM 340,480 llvm-config.exe
> 12/29/2015 08:38 PM 4,435,456 llvm-extract.exe
> 12/29/2015 08:32 PM 15,673,856 llvm-ar.exe
> 12/29/2015 08:40 PM 3,876,864 llvm-symbolizer.exe
> 12/29/2015 08:37 PM 25,534,464 llvm-c-test.exe
> 12/29/2015 08:37 PM 3,653,632 llvm-as.exe
> 12/29/2015 08:40 PM 500,736 llvm-pdbdump.exe
> 12/29/2015 08:02 PM 2,048,512 llvm-tblgen.exe
> 12/29/2015 08:37 PM 412,672 llvm-bcanalyzer.exe
> 164 File(s) 4,263,172,460 bytes
> 2 Dir(s) 50,375,655,424 bytes free
>
>
>
>
> Release build:
>
> Directory of C:\LLVM\build\Release\bin
>
> 12/30/2015 02:29 AM <DIR> ..
> 12/30/2015 02:29 AM <DIR> .
> 12/30/2015 02:29 AM 23,004,160 LTO.dll
> 12/30/2015 02:27 AM 27,575,296 libclang.dll
> 12/30/2015 02:29 AM 11,776 c-arcmt-test.exe
> 12/30/2015 02:29 AM 74,240 c-index-test.exe
> 12/30/2015 02:29 AM 34,474,496 clang++.exe
> 12/30/2015 02:28 AM 28,597,248 clang-check.exe
> 12/30/2015 02:29 AM 34,474,496 clang-cl.exe
> 12/30/2015 02:29 AM 1,206,272 clang-format.exe
> 12/30/2015 01:41 AM 636,416 clang-tblgen.exe
> 12/30/2015 02:29 AM 34,474,496 clang.exe
> 12/30/2015 02:02 AM 10,752 count.exe
> 12/30/2015 02:27 AM 2,692,096 diagtool.exe
> 12/30/2015 02:02 AM 199,168 FileCheck.exe
> 12/30/2015 02:02 AM 144,384 KillTheDoctor.exe
> 12/30/2015 02:29 AM 5,304,320 bugpoint.exe
> 12/30/2015 02:27 AM 19,832,320 llc.exe
> 12/30/2015 02:02 AM 25,088 lli-child-target.exe
> 12/30/2015 02:27 AM 9,769,472 lli.exe
> 12/30/2015 02:27 AM 10,468,864 llvm-ar.exe
> 12/30/2015 02:27 AM 1,691,648 llvm-as.exe
> 12/30/2015 02:28 AM 165,888 llvm-bcanalyzer.exe
> 12/30/2015 02:28 AM 18,173,952 llvm-c-test.exe
> 12/30/2015 02:02 AM 103,936 llvm-config.exe
> 12/30/2015 02:28 AM 1,687,040 llvm-cov.exe
> 12/30/2015 02:29 AM 8,776,704 arcmt-test.exe
> 12/30/2015 02:28 AM 1,570,304 llvm-diff.exe
> 12/30/2015 02:28 AM 1,326,080 llvm-dis.exe
> 12/30/2015 02:28 AM 16,863,232 llvm-dsymutil.exe
> 12/30/2015 02:28 AM 1,675,264 llvm-dwarfdump.exe
> 12/30/2015 02:28 AM 16,630,784 llvm-dwp.exe
> 12/30/2015 02:28 AM 2,025,472 llvm-extract.exe
> 12/30/2015 02:28 AM 10,468,864 llvm-lib.exe
> 12/30/2015 02:28 AM 1,961,472 llvm-link.exe
> 12/30/2015 02:02 AM 173,568 yaml-bench.exe
> 12/30/2015 02:28 AM 21,027,840 llvm-lto.exe
> 12/30/2015 02:28 AM 11,923,968 llvm-mc.exe
> 12/30/2015 02:02 AM 144,384 llvm-mcmarkup.exe
> 12/30/2015 02:28 AM 10,464,256 llvm-nm.exe
> 12/30/2015 02:28 AM 9,658,880 llvm-objdump.exe
> 12/30/2015 02:28 AM 215,040 llvm-pdbdump.exe
> 12/30/2015 02:02 AM 18,432 llvm-PerfectShuffle.exe
> 12/30/2015 02:29 AM 325,632 llvm-profdata.exe
> 12/30/2015 02:28 AM 10,468,864 llvm-ranlib.exe
> 12/30/2015 02:29 AM 1,805,824 llvm-readobj.exe
> 12/30/2015 02:29 AM 8,293,888 llvm-rtdyld.exe
> 12/30/2015 02:29 AM 1,575,936 llvm-size.exe
> 12/30/2015 02:29 AM 1,929,728 llvm-split.exe
> 12/30/2015 02:29 AM 1,341,440 llvm-stress.exe
> 12/30/2015 02:29 AM 1,714,176 llvm-symbolizer.exe
> 12/30/2015 01:41 AM 1,300,992 llvm-tblgen.exe
> 12/30/2015 02:28 AM 1,580,544 llvm-cxxdump.exe
> 12/30/2015 02:02 AM 52,224 not.exe
> 12/30/2015 02:29 AM 1,660,928 obj2yaml.exe
> 12/30/2015 02:29 AM 19,069,952 opt.exe
> 12/30/2015 02:29 AM 9,402,368 sancov.exe
> 12/30/2015 02:29 AM 1,809,920 verify-uselistorder.exe
> 12/30/2015 02:29 AM 352,256 yaml2obj.exe
> 58 File(s) 432,408,721 bytes
> 2 Dir(s) 56,124,084,224 bytes free
>
>
>
>
> MinSizeRel build:
>
> Directory of C:\LLVM\build\MinSizeRel\bin
>
> 12/31/2015 11:02 PM <DIR> ..
> 12/31/2015 11:02 PM <DIR> .
> 12/31/2015 11:01 PM 20,337,664 LTO.dll
> 12/31/2015 10:58 PM 23,514,624 libclang.dll
> 12/31/2015 11:01 PM 11,776 c-arcmt-test.exe
> 12/31/2015 11:01 PM 66,048 c-index-test.exe
> 12/31/2015 11:02 PM 28,683,264 clang++.exe
> 12/31/2015 11:00 PM 24,313,856 clang-check.exe
> 12/31/2015 11:02 PM 28,683,264 clang-cl.exe
> 12/31/2015 11:01 PM 1,030,144 clang-format.exe
> 12/31/2015 10:41 PM 427,008 clang-tblgen.exe
> 12/31/2015 11:01 PM 28,683,264 clang.exe
> 12/31/2015 10:59 PM 10,752 count.exe
> 12/31/2015 10:59 PM 2,280,960 diagtool.exe
> 12/31/2015 10:59 PM 160,768 FileCheck.exe
> 12/31/2015 11:01 PM 120,832 KillTheDoctor.exe
> 12/31/2015 11:01 PM 4,200,960 bugpoint.exe
> 12/31/2015 10:59 PM 17,507,328 llc.exe
> 12/31/2015 10:59 PM 24,064 lli-child-target.exe
> 12/31/2015 10:59 PM 8,457,728 lli.exe
> 12/31/2015 10:57 PM 10,115,072 llvm-ar.exe
> 12/31/2015 11:00 PM 1,603,584 llvm-as.exe
> 12/31/2015 11:00 PM 137,728 llvm-bcanalyzer.exe
> 12/31/2015 11:00 PM 16,118,272 llvm-c-test.exe
> 12/31/2015 11:00 PM 93,184 llvm-config.exe
> 12/31/2015 11:00 PM 1,645,568 llvm-cov.exe
> 12/31/2015 11:01 PM 6,843,904 arcmt-test.exe
> 12/31/2015 11:00 PM 1,523,712 llvm-diff.exe
> 12/31/2015 11:00 PM 1,359,872 llvm-dis.exe
> 12/31/2015 11:00 PM 14,695,424 llvm-dsymutil.exe
> 12/31/2015 11:00 PM 1,641,984 llvm-dwarfdump.exe
> 12/31/2015 11:00 PM 14,522,368 llvm-dwp.exe
> 12/31/2015 11:00 PM 1,870,336 llvm-extract.exe
> 12/31/2015 11:00 PM 10,115,072 llvm-lib.exe
> 12/31/2015 11:00 PM 1,819,136 llvm-link.exe
> 12/31/2015 11:01 PM 136,192 yaml-bench.exe
> 12/31/2015 11:00 PM 18,402,816 llvm-lto.exe
> 12/31/2015 11:00 PM 11,592,704 llvm-mc.exe
> 12/31/2015 11:00 PM 117,760 llvm-mcmarkup.exe
> 12/31/2015 11:00 PM 10,116,096 llvm-nm.exe
> 12/31/2015 11:00 PM 9,341,440 llvm-objdump.exe
> 12/31/2015 11:00 PM 177,664 llvm-pdbdump.exe
> 12/31/2015 10:59 PM 17,920 llvm-PerfectShuffle.exe
> 12/31/2015 11:01 PM 264,192 llvm-profdata.exe
> 12/31/2015 11:01 PM 10,115,072 llvm-ranlib.exe
> 12/31/2015 11:01 PM 1,775,104 llvm-readobj.exe
> 12/31/2015 11:01 PM 7,966,720 llvm-rtdyld.exe
> 12/31/2015 11:01 PM 1,566,208 llvm-size.exe
> 12/31/2015 11:01 PM 1,805,312 llvm-split.exe
> 12/31/2015 11:01 PM 1,354,752 llvm-stress.exe
> 12/31/2015 11:01 PM 1,670,144 llvm-symbolizer.exe
> 12/31/2015 10:41 PM 922,624 llvm-tblgen.exe
> 12/31/2015 11:00 PM 1,568,768 llvm-cxxdump.exe
> 12/31/2015 11:01 PM 45,568 not.exe
> 12/31/2015 11:01 PM 1,622,528 obj2yaml.exe
> 12/31/2015 11:01 PM 16,254,464 opt.exe
> 12/31/2015 11:01 PM 9,148,416 sancov.exe
> 12/31/2015 11:01 PM 1,693,184 verify-uselistorder.exe
> 12/31/2015 11:01 PM 274,432 yaml2obj.exe
> 58 File(s) 380,571,284 bytes
> 2 Dir(s) 56,083,685,376 bytes free
>
>
>
>
> Debug build:
>
> Directory of C:\LLVM\build\Debug\bin
>
> 01/01/2016 03:24 AM <DIR> ..
> 01/01/2016 03:24 AM <DIR> .
> 01/01/2016 03:11 AM 90,830,336 libclang.dll
> 01/01/2016 03:22 AM 59,970,560 LTO.dll
> 01/01/2016 03:22 AM 1,582,592 yaml2obj.exe
> 01/01/2016 03:21 AM 1,041,920 yaml-bench.exe
> 01/01/2016 03:21 AM 24,452,608 bugpoint.exe
> 01/01/2016 03:21 AM 7,279,104 verify-uselistorder.exe
> 01/01/2016 03:20 AM 20,070,912 sancov.exe
> 01/01/2016 03:21 AM 39,936 c-arcmt-test.exe
> 01/01/2016 03:20 AM 55,005,184 opt.exe
> 01/01/2016 03:19 AM 7,520,768 obj2yaml.exe
> 01/01/2016 03:21 AM 157,184 c-index-test.exe
> 01/01/2016 03:19 AM 804,352 not.exe
> 01/01/2016 03:21 AM 37,114,880 arcmt-test.exe
> 01/01/2016 03:24 AM 107,311,104 clang++.exe
> 01/01/2016 03:16 AM 86,434,304 clang-check.exe
> 01/01/2016 02:04 AM 6,412,800 llvm-tblgen.exe
> 01/01/2016 03:19 AM 7,889,408 llvm-symbolizer.exe
> 01/01/2016 03:24 AM 107,311,104 clang-cl.exe
> 01/01/2016 03:22 AM 4,373,504 clang-format.exe
> 12/28/2015 01:15 AM 77,312 a.exe
> 01/01/2016 03:19 AM 10,030,080 llvm-split.exe
> 01/01/2016 02:04 AM 2,584,064 clang-tblgen.exe
> 01/01/2016 03:19 AM 7,030,784 llvm-size.exe
> 01/01/2016 03:19 AM 20,128,256 llvm-rtdyld.exe
> 01/01/2016 03:23 AM 107,311,104 clang.exe
> 01/01/2016 03:19 AM 7,612,928 llvm-readobj.exe
> 01/01/2016 03:19 AM 26,210,816 llvm-ranlib.exe
> 01/01/2016 03:12 AM 37,888 count.exe
> 01/01/2016 03:19 AM 5,340,672 llvm-profdata.exe
> 01/01/2016 03:13 AM 86,528 llvm-PerfectShuffle.exe
> 01/01/2016 03:12 AM 30,198,784 diagtool.exe
> 01/01/2016 03:19 AM 1,248,768 llvm-pdbdump.exe
> 01/01/2016 03:18 AM 20,229,120 llvm-objdump.exe
> 01/01/2016 03:12 AM 1,050,112 FileCheck.exe
> 01/01/2016 03:18 AM 26,081,792 llvm-nm.exe
> 01/01/2016 03:18 AM 869,888 llvm-mcmarkup.exe
> 01/01/2016 03:19 AM 858,112 KillTheDoctor.exe
> 01/01/2016 03:18 AM 29,020,672 llvm-mc.exe
> 01/01/2016 03:18 AM 57,073,152 llvm-lto.exe
> 01/01/2016 03:19 AM 5,646,336 llvm-stress.exe
> 01/01/2016 03:17 AM 8,892,928 llvm-link.exe
> 01/01/2016 03:17 AM 26,210,816 llvm-lib.exe
> 01/01/2016 03:13 AM 52,477,440 llc.exe
> 01/01/2016 03:17 AM 9,280,512 llvm-extract.exe
> 01/01/2016 03:17 AM 47,185,920 llvm-dwp.exe
> 01/01/2016 03:13 AM 819,712 lli-child-target.exe
> 01/01/2016 03:16 AM 7,541,248 llvm-dwarfdump.exe
> 01/01/2016 03:17 AM 47,682,560 llvm-dsymutil.exe
> 01/01/2016 03:13 AM 31,242,240 lli.exe
> 01/01/2016 03:15 AM 5,601,280 llvm-dis.exe
> 01/01/2016 03:15 AM 6,572,032 llvm-diff.exe
> 01/01/2016 03:08 AM 26,210,816 llvm-ar.exe
> 01/01/2016 03:14 AM 7,368,192 llvm-cxxdump.exe
> 01/01/2016 03:14 AM 7,678,976 llvm-cov.exe
> 01/01/2016 03:13 AM 6,724,608 llvm-as.exe
> 01/01/2016 03:14 AM 934,912 llvm-config.exe
> 01/01/2016 03:14 AM 48,035,840 llvm-c-test.exe
> 01/01/2016 03:14 AM 978,432 llvm-bcanalyzer.exe
> 165 File(s) 8,743,874,399 bytes
> 2 Dir(s) 40,522,027,008 bytes free
>
> ```
It looks like improvements across the board - //I haven't checked every single one of the binaries// - as in no regressions, and many size reductions. For example:
```
libclang.dll Patch:
Debug build 87,031,808 libclang.dll
Release build 27,575,296 libclang.dll
MinSizeRel build 23,375,872 libclang.dll
RelWithDebInfo build 42,237,952 libclang.dll
libclang.dll No patch:
Debug build 90,830,336 libclang.dll
Release build 27,575,296 libclang.dll
MinSizeRel build 23,514,624 libclang.dll
RelWithDebInfo build 42,237,952 libclang.dll
LTO.dll Patch:
Debug build 57,349,120 LTO.dll
Release build 23,004,160 LTO.dll
MinSizeRel build 20,252,672 LTO.dll
RelWithDebInfo build 31,601,664 LTO.dll
LTO.dll No patch:
Debug build 59,970,560 LTO.dll
Release build 23,004,160 LTO.dll
MinSizeRel build 20,337,664 LTO.dll
RelWithDebInfo build 31,601,664 LTO.dll
llvm-PerfectShuffle.exe Patch:
Debug build 86,016 llvm-PerfectShuffle.exe
Release build 18,432 llvm-PerfectShuffle.exe
MinSizeRel build 17,408 llvm-PerfectShuffle.exe
RelWithDebInfo build 46,592 llvm-PerfectShuffle.exe
llvm-PerfectShuffle.exe No patch:
Debug build 86,528 llvm-PerfectShuffle.exe
Release build 18,432 llvm-PerfectShuffle.exe
MinSizeRel build 17,920 llvm-PerfectShuffle.exe
RelWithDebInfo build 46,592 llvm-PerfectShuffle.exe
clang++.exe Patch:
Debug build 102,623,232 clang++.exe
Release build 34,473,984 clang++.exe
MinSizeRel build 28,572,160 clang++.exe
RelWithDebInfo build 48,616,960 clang++.exe
clang++.exe No patch:
Debug build 107,311,104 clang++.exe
Release build 34,474,496 clang++.exe
MinSizeRel build 28,683,264 clang++.exe
RelWithDebInfo build 48,616,960 clang++.exe
```
http://reviews.llvm.org/D15784
More information about the llvm-commits
mailing list