Here's an example where llvm should probably be producing smaller code, its output is 700% larger than gcc.
regehr@john-home:~/volatile/tmp11$ llvm-gcc -Os -w small.c -o small ; size small
text data bss dec hex filename
6324 252 8 6584 19b8 small
regehr@john-home:~/volatile/tmp11$ current-gcc -Os -w small.c -o small ; size small
text data bss dec hex filename
784 252 12 1048 418 small
Looks easy to fix: probably at -Os the inliner should not be so aggressive.
John Regehr
small.c (1.69 KB)