[LLVMdev] llvm-ld doesn't honor -Ox
Holger Schurig
hs4233 at mail.mn-solutions.de
Wed Jul 18 15:32:00 PDT 2007
The project that I use to test LLVM against showed that currently
llvm-ld doesn't honor the -Ox switch.
$ /usr/src/llvm/dist/bin/llvm-ld \
-v -stats -native -O1 -strip-all \
-o main \
-L/usr/share/qt3/lib -L/usr/X11R6/lib \
-lcrypto -lusb -lutil -lqt-mt -lXext -lX11 -lm -lpthread
...
$ size main
text data bss dec hex filename
1128271 71980 8392 1208643 127143 main
$ /usr/src/llvm/dist/bin/llvm-ld \
-v -stats -native -O5 -strip-all \
-o main \
-L/usr/share/qt3/lib -L/usr/X11R6/lib \
-lcrypto -lusb -lutil -lqt-mt -lXext -lX11 -lm -lpthread
$ size main
text data bss dec hex filename
1128271 71980 8392 1208643 127143 main
As you see, I put "-stats" into the command lines, so I get some
statistics. In both cases I get the same stats (below). Should'nt
-O5 run more passes than -O1 ?!?
3 argpromotion - Number of aggregate arguments promoted
25 constmerge - Number of global constants merged
2 deadargelim - Number of unread args removed
0 deadargelim - Number of unused return values removed
29 dse - Number of stores deleted
1103 gcse - Number of instructions removed
17 gcse - Number of instructions removed due to non-instruction values
316 gcse - Number of loads removed
1 globaldce - Number of global variables removed
3 globalopt - Number of functions converted to fastcc
8 globalsmodref-aa - Number of functions that do not access memory
57 globalsmodref-aa - Number of functions that only read memory
128 globalsmodref-aa - Number of functions without address taken
14 globalsmodref-aa - Number of global vars without address taken
9 inline - Number of functions deleted because all callers found
496 inline - Number of functions inlined
12 instcombine - Number of constant folds
512 instcombine - Number of dead inst eliminated
3 instcombine - Number of dead stores eliminated
70 instcombine - Number of instructions sunk
876 instcombine - Number of insts combined
2 licm - Number of call insts hoisted or sunk
539 licm - Number of instructions hoisted out of loop
37 licm - Number of instructions sunk out of loop
7 licm - Number of load insts hoisted or sunk
5 loopsimplify - Number of nested loops split out
893 loopsimplify - Number of pre-header or exit blocks inserted
2 scalarrepl - Number of allocas broken up
6 scalarrepl - Number of allocas promoted
4 sccp - Number of basic blocks unreachable by IPSCCP
23 sccp - Number ofinstructions removed by IPSCCP
1159 simplifycfg - Number of blocks simplified
More information about the llvm-dev
mailing list