[LLVMdev] speed and code size issues
Jonathan Gray
jsg at goblin.cx
Fri Jul 17 16:14:19 PDT 2009
So it would appear that llvm-gcc and clang are both slower than
gcc4 which is infamous for being slow at compiling code, and
yes this is with a release build/--enable-optimizations.
This seems to go against notes such as
http://clang.llvm.org/features.html#performance
which claim clang is signifcantly faster than gcc.
Below are some times and the larger object files when
compiling an i386 OpenBSD kernel at -O2 on an Intel Atom
based laptop. The significantly larger code size
is rather disturbing as it means binaries can't fit on
space constrained installation media for example.
As the large object files appear with both llvm-gcc
and clang it would appear to be a problem with
the X86 backend. Is this the expected behaviour at
this point? There is quite a difference in code size
between llvm based compilers and pure GCC ones.
I'm happy to supply more configuration/object size details
if someone is interested.
=========================
clang 20070717 svn --enable-optimizations
clang version 1.0 (http://llvm.org/svn/llvm-project/cfe/trunk 76176M)
text data bss dec hex
7412287 160516 1049460 8622263 8390b7
19m4.11s real 16m56.35s user 1m44.23s system
-rw-r--r-- 1 jsg wsrc 122K Jul 18 01:41 if_spppsubr.o
-rw-r--r-- 1 jsg wsrc 127K Jul 18 01:36 aic79xx.o
-rw-r--r-- 1 jsg wsrc 130K Jul 18 01:46 pci_subr.o
-rw-r--r-- 1 jsg wsrc 161K Jul 18 01:38 bwi.o
-rw-r--r-- 1 jsg wsrc 349K Jul 18 01:47 isp_pci.o
-rwxr-xr-x 1 jsg wsrc 7.9M Jul 18 01:54 bsd
=========================
gcc 3.3.5
text data bss dec hex
6358820 182268 1051044 7592132 73d8c4
14m7.04s real 13m5.64s user 1m15.96s system
-rw-r--r-- 1 jsg wsrc 85.2K Jul 18 02:25 isp.o
-rw-r--r-- 1 jsg wsrc 97.5K Jul 18 02:26 bwi.o
-rw-r--r-- 1 jsg wsrc 100K Jul 18 02:24 aic79xx.o
-rw-r--r-- 1 jsg wsrc 124K Jul 18 02:32 pci_subr.o
-rw-r--r-- 1 jsg wsrc 350K Jul 18 02:32 isp_pci.o
-rwxr-xr-x 1 jsg wsrc 6.9M Jul 18 02:38 bsd
=========================
gcc 4.2.4
text data bss dec hex
6373332 169212 1051044 7593588 73de74
17m49.36s real 16m44.82s user 1m15.59s system
-rw-r--r-- 1 jsg wsrc 98.6K Jul 18 02:00 aic79xx.o
-rw-r--r-- 1 jsg wsrc 99.3K Jul 18 02:02 bwi.o
-rw-r--r-- 1 jsg wsrc 124K Jul 18 02:09 pci_subr.o
-rw-r--r-- 1 jsg wsrc 351K Jul 18 02:10 isp_pci.o
-rwxr-xr-x 1 jsg wsrc 6.9M Jul 18 02:17 bsd
=========================
llvm-gcc 4.2.1 svn 20090717
gcc version 4.2.1 (Based on Apple Inc. build 5646) (LLVM build)
ld -Ttext 0xD0200120 -e start -N --warn-common -S -x -o bsd ${SYSTEM_OBJ} vers.o
text data bss dec hex
7235924 179256 1053092 8468272 813730
18m4.05s real 16m35.42s user 1m35.06s system
-rw-r--r-- 1 jsg wsrc 118K Jul 18 01:12 if_spppsubr.o
-rw-r--r-- 1 jsg wsrc 124K Jul 18 01:16 pci_subr.o
-rw-r--r-- 1 jsg wsrc 125K Jul 18 01:07 aic79xx.o
-rw-r--r-- 1 jsg wsrc 159K Jul 18 01:09 bwi.o
-rw-r--r-- 1 jsg wsrc 349K Jul 18 01:17 isp_pci.o
-rwxr-xr-x 1 jsg wsrc 7.8M Jul 18 01:24 bsd
More information about the llvm-dev
mailing list