I am considering using LLVM in a project for a Windows CE where space is at a premium. My jaw dropped when I checked the size of HowToUseJIT.exe (VC++ Win32 debug): 15.4 MB! The release build of HowToUseJIT is "only" 3.39 MB, but this is still 85% larger than the binary to which I was thinking of adding LLVM. The top ten LLVM libraries (Win32 *.lib) are pretty huge: Release Bld Debug Bld Name 24,510,490 71,038,240 LLVMCodeGen.lib 21,084,666 56,724,338 LLVMCore.lib 14,624,218 37,070,488 LLVMAnalysis.lib 11,987,202 30,711,450 LLVMScalarOpts.lib 8,600,668 23,837,478 LLVMSelectionDAG.lib 8,634,324 23,802,952 LLVMTransformUtils.lib 8,347,134 20,840,744 LLVMipo.lib 5,061,702 11,028,744 LLVMX86CodeGen.lib 3,857,612 9,270,012 LLVMInstCombine.lib 3,330,608 7,820,760 LLVMSupport.lib The binaries are vastly larger than the source code; for example, everything in lib/CodeGen is 3.63 MB and everything in lib/VMCore is 907 KB. This is quite different than my typical experience; my own C++ source code is larger than the Release DLL it compiles into. Does anyone know why this stuff is so big, and whether there is a way to get a bare subset of LLVM that fits in under 1 MB? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100723/9b8cb882/attachment.html>
On Jul 23, 2010, at 10:24 AM, David Piepgrass wrote:> The top ten LLVM libraries (Win32 *.lib) are pretty huge: > > Release Bld Debug Bld Name > 24,510,490 71,038,240 LLVMCodeGen.lib > 21,084,666 56,724,338 LLVMCore.lib > 14,624,218 37,070,488 LLVMAnalysis.lib > 11,987,202 30,711,450 LLVMScalarOpts.lib > 8,600,668 23,837,478 LLVMSelectionDAG.lib > 8,634,324 23,802,952 LLVMTransformUtils.lib > 8,347,134 20,840,744 LLVMipo.lib > 5,061,702 11,028,744 LLVMX86CodeGen.lib > 3,857,612 9,270,012 LLVMInstCombine.lib > 3,330,608 7,820,760 LLVMSupport.libNot sure about Win32, but here are some numbers on OS X for comparison: 5,282,356 libLLVMCodeGen.a 3,087,436 libLLVMAnalysis.a 1,682,476 libLLVMInstCombine.a I believe these are all release builds. Trevor
Trevor Harmon <Trevor.W.Harmon at nasa.gov> writes:> On Jul 23, 2010, at 10:24 AM, David Piepgrass wrote: > >> The top ten LLVM libraries (Win32 *.lib) are pretty huge: >> >> Release Bld Debug Bld Name >> 24,510,490 71,038,240 LLVMCodeGen.lib[snip]> Not sure about Win32, but here are some numbers on OS X for comparison: > > 5,282,356 libLLVMCodeGen.aComparing the size of the static libraries makes little sense, and even less when they are compiled by different tools. What really matters is the size of the executables. I agree that LLVM can be considered a heavyweight dependency on this aspect. [snip]