[cfe-dev] Compilation benchmark: bzip2: Follow up data
Richard Pennington
rich at pennware.com
Sun Dec 23 09:16:56 PST 2007
Richard Pennington wrote:
> Richard Pennington wrote:
> [snip]
More data. I know have the ellsif driver doing all the steps except
preprocessing. The first steps are done in memory:
1. compiling (C->bitcode) for each file.
2. Optimize each bitcode module.
3. Link the bitcode modules and optimize the result.
The bitcode is then converted to assembly and sent to disk as a .s file.
The final action is to use gcc to assemble and link the result.
[~/elsa/ellsif] dev% time gcc -O5 -o gcc.out -std=c9x test/sieve.i
test/ofmt.i
1.228u 0.080s 0:01.38 94.2% 0+0k 0+0io 0pf+0w
[~/elsa/ellsif] dev% time ./ellsif test/ofmt.i test/sieve.i -O5
<premain>: CommandLine Error: Argument 'machine-licm' defined more than
once!
ellsif: CommandLine Error: Argument 'machine-licm' defined more than once!
0.852u 0.044s 0:00.90 98.8% 0+0k 0+0io 0pf+0w
[~/elsa/ellsif] dev%
As you can see. At -O5 ellsif is slighty faster. This is a pretty small
example: I'll try it on bzip2 soon.
Here are the ellsif phases and the timing by action:
[~/elsa/ellsif] dev% time ./ellsif test/ofmt.i test/sieve.i -O5
-time-actions -v
<premain>: CommandLine Error: Argument 'machine-licm' defined more than
once!
ellsif: CommandLine Error: Argument 'machine-licm' defined more than once!
Adding test/ofmt.i as a preprocessed C file
Adding test/sieve.i as a preprocessed C file
Phase: Preprocessing
test/ofmt.i is ignored during this phase
test/sieve.i is ignored during this phase
Phase: Translation
compile test/ofmt.i to become an unoptimized LLVM bitcode file
compile test/sieve.i to become an unoptimized LLVM bitcode file
Phase: Optimization
optimize ofmt.ubc to become an LLVM bitcode file
optimize sieve.ubc to become an LLVM bitcode file
Phase: Bitcode linking
bclink ofmt.bc to become a file that has been linked
bclink sieve.bc to become a file that has been linked
bclink a.bc added to the file list
Phase: Generating
ofmt.bc is ignored during this phase
sieve.bc is ignored during this phase
generate a.bc to become an assembly source file
Phase: Linking
ofmt.bc is ignored during this phase
sieve.bc is ignored during this phase
assemble a.s to become a file that has been linked
Generating Native Executable With:
'/usr/bin/gcc' '-fno-strict-aliasing' '-O3' '-o' 'a.out' 'a.s'
===-------------------------------------------------------------------------===
... Ellsif action timing report ...
===-------------------------------------------------------------------------===
Total Execution Time: 0.6920 seconds (0.8302 wall clock)
---User Time--- --System Time-- --User+System-- ---Wall
Time--- --- Name ---
0.2040 ( 30.5%) 0.0120 ( 50.0%) 0.2160 ( 31.2%) 0.2192 (
26.4%) Generating
0.2040 ( 30.5%) 0.0000 ( 0.0%) 0.2040 ( 29.4%) 0.2140 (
25.7%) Optimization
0.1640 ( 24.5%) 0.0120 ( 50.0%) 0.1760 ( 25.4%) 0.1788 (
21.5%) Type checking
0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.0000 ( 0.0%) 0.1190 (
14.3%) Linking
0.0560 ( 8.3%) 0.0000 ( 0.0%) 0.0560 ( 8.0%) 0.0602 (
7.2%) Bitcode linking
0.0200 ( 2.9%) 0.0000 ( 0.0%) 0.0200 ( 2.8%) 0.0178 (
2.1%) LLVM generation
0.0080 ( 1.1%) 0.0000 ( 0.0%) 0.0080 ( 1.1%) 0.0103 (
1.2%) Integrity checking
0.0080 ( 1.1%) 0.0000 ( 0.0%) 0.0080 ( 1.1%) 0.0077 (
0.9%) Elaboration
0.0040 ( 0.5%) 0.0000 ( 0.0%) 0.0040 ( 0.5%) 0.0027 (
0.3%) Parsing
0.6680 (100.0%) 0.0240 (100.0%) 0.6920 (100.0%) 0.8302
(100.0%) TOTAL
0.860u 0.072s 0:00.95 97.8% 0+0k 0+0io 0pf+0w
[~/elsa/ellsif] dev%
-Rich
More information about the cfe-dev
mailing list