[LLVMdev] Status of Elsa->LLVM

Richard Pennington rich at pennware.com
Fri Dec 21 13:08:57 PST 2007


I'm a little further along now. I've started to put together a simple 
driver for Elsa and LLVM that I'm calling "ellsif" (cute name, I think 
it works).

The file being compiled is a "printf" function. Here are timing results 
for optimized and unoptimized runs:

[~/elsa/ellsif] dev% ./ellsif -v test/ofmt.i -time-actions
Adding test/ofmt.i as a preprocessed C file
Phase: Preprocessing
   test/ofmt.i is ignored during this phase
Phase: Translation
   compile test/ofmt.i to become an unoptimized LLVM bitcode file
typechecking results:
   errors:   0
   warnings: 0
Phase: Optimization
   optimize ofmt.bc to become an LLVM bitcode file
Phase: Bitcode linking
   bclink ofmt.bc to become a file that has been linked
Phase: Bitcode assembly
   ofmt.bc is ignored during this phase
Phase: Assembly
   ofmt.bc is ignored during this phase
Phase: Linking
   ofmt.bc is ignored during this phase
===-------------------------------------------------------------------------===
                       ... Ellsif action timing report ...
===-------------------------------------------------------------------------===
   Total Execution Time: 0.2120 seconds (0.2143 wall clock)

    ---User Time---   --System Time--   --User+System--   ---Wall 
Time---  --- Name ---
    0.1400 ( 72.9%)   0.0160 ( 79.9%)   0.1560 ( 73.5%)   0.1558 ( 
72.7%)  Type checking
    0.0280 ( 14.5%)   0.0000 (  0.0%)   0.0280 ( 13.2%)   0.0310 ( 
14.5%)  Optimization
    0.0080 (  4.1%)   0.0040 ( 20.0%)   0.0120 (  5.6%)   0.0154 ( 
7.2%)  Elaboration
    0.0120 (  6.2%)   0.0000 (  0.0%)   0.0120 (  5.6%)   0.0101 ( 
4.7%)  Integrity checking
    0.0040 (  2.0%)   0.0000 (  0.0%)   0.0040 (  1.8%)   0.0017 ( 
0.7%)  Parsing
    0.1920 (100.0%)   0.0200 (100.0%)   0.2120 (100.0%)   0.2143 
(100.0%)  TOTAL

[~/elsa/ellsif] dev% ./ellsif -v test/ofmt.i -time-actions -std-compile-opts
Adding test/ofmt.i as a preprocessed C file
Phase: Preprocessing
   test/ofmt.i is ignored during this phase
Phase: Translation
   compile test/ofmt.i to become an unoptimized LLVM bitcode file
typechecking results:
   errors:   0
   warnings: 0
Phase: Optimization
   optimize ofmt.bc to become an LLVM bitcode file
Phase: Bitcode linking
   bclink ofmt.bc to become a file that has been linked
Phase: Bitcode assembly
   ofmt.bc is ignored during this phase
Phase: Assembly
   ofmt.bc is ignored during this phase
Phase: Linking
   ofmt.bc is ignored during this phase
===-------------------------------------------------------------------------===
                       ... Ellsif action timing report ...
===-------------------------------------------------------------------------===
   Total Execution Time: 1.3560 seconds (1.4326 wall clock)

    ---User Time---   --System Time--   --User+System--   ---Wall 
Time---  --- Name ---
    1.1720 ( 86.6%)   0.0000 (  0.0%)   1.1720 ( 86.4%)   1.2139 ( 
84.7%)  Optimization
    0.1560 ( 11.5%)   0.0040 (100.0%)   0.1600 ( 11.7%)   0.1833 ( 
12.8%)  Type checking
    0.0120 (  0.8%)   0.0000 (  0.0%)   0.0120 (  0.8%)   0.0227 ( 
1.5%)  Elaboration
    0.0080 (  0.5%)   0.0000 (  0.0%)   0.0080 (  0.5%)   0.0099 ( 
0.6%)  Integrity checking
    0.0040 (  0.2%)   0.0000 (  0.0%)   0.0040 (  0.2%)   0.0025 ( 
0.1%)  Parsing
    1.3520 (100.0%)   0.0040 (100.0%)   1.3560 (100.0%)   1.4326 
(100.0%)  TOTAL

[~/elsa/ellsif] dev% wc test/ofmt.i
  2899  7781 67913 test/ofmt.i
[~/elsa/ellsif] dev%

Sorry to add noise to the list with this. I'm just very excited. ;-)
Again, my compliments to both the Elsa and LLVM teams. It says a lot 
that I got this far in 19 days of part-time work.

-Rich



More information about the llvm-dev mailing list