[cfe-users] optimize template-heavy project with duplicate code removal

chen xu via cfe-users cfe-users at lists.llvm.org
Thu Sep 24 15:12:57 PDT 2015


Thanks, David.  The build type is Debug. Today I tried removing the debug info (-g), the size of the executable could be cut 90%, to around 100MB, which looks not bad. Do you know whether there is a way to separate debug info file from the executable file on Linux? Mainly our code is already there, refactoring might require big effort.. Also, does clang support -fno-implicit-templates? if yes, maybe we could use it to eliminate duplicate template instances to control the final size. 
Date: Wed, 23 Sep 2015 16:59:04 -0700
Subject: Re: [cfe-users] optimize template-heavy project with duplicate code removal
From: dblaikie at gmail.com
To: chenxuz at outlook.com
CC: cfe-users at lists.llvm.org

debug or non-debug build?
& no, for a full release build, measuring the final executable size, there's not much you can do with the compiler.

you can try to factor common portions out of your templates (eg: remove template parameters where possible - if, for example, a member function of a class template doesn't need all the template parameters - pull it out into a standalone function template that takes fewer template parameters, and call it from the member one)
On Wed, Sep 23, 2015 at 4:43 PM, chen xu via cfe-users <cfe-users at lists.llvm.org> wrote:



Hi, our project heavily uses c++ template, and the resulting executable is almost 1.5G Bytes, which is too big to be acceptable. Adding -O2 or -Os does not seem helping. Is there any way (like link option, etc) to reduce the size?  		 	   		  

_______________________________________________

cfe-users mailing list

cfe-users at lists.llvm.org

http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users



 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-users/attachments/20150924/46badf9d/attachment.html>


More information about the cfe-users mailing list