[LLVMdev] current llvm vs. current gcc code size

regehr regehr at cs.utah.edu
Wed Aug 20 20:50:28 PDT 2008

This is a bit random but perhaps interesting:

Attached is a histogram of code sizes for about 50,000 random C programs 
compiled by recent versions of llvm and gcc.  x-axis is bytes in the 
text segment and y-axis is number of programs in each 100-byte bucket.

Code size for a program is taken to be the smallest code size across 
-O0, -O1, -O2, -O3, and -Os, for a given compiler.

I don't know why each histogram has two peaks, or why llvm's left-hand 
peak is at a lower code size than gcc's left-hand peak.  Perhaps the 
left-hand peaks indicate trivial random programs that compile completely 
away and then llvm has a more concise crt0.

Anyway the interesting effect here is the rightward shift of the main 
bulk of the binaries produced by llvm vs. gcc.  This would seem to 
indicate that there are optimization opportunities being missed by llvm. 
  Ideally, there would be some automatic way to identify these 
opportunities, perhaps using delta-debugging techniques.  If this seems 
interesting to people I can look into it more...

This is targeting x86/Linux.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: size.png
Type: image/png
Size: 4094 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20080820/1e376bba/attachment.png>

More information about the llvm-dev mailing list