CS412/413
Introduction to Compilers and Translators
Spring 2000
Cornell University Computer Science Department

Iota+ Compiler Benchmark Results

Below are the benchmark programs and the results of the benchmark runs for the projects turned in last Thursday and Friday.  All were run on the same machine with the Sun JVM. All times are measured in seconds.  The groups have been sorted randomly and renamed to protect privacy.  The first three tests (beginning with "correct_") were to test compiler correctness and were not timed.  "ok" indicates that the test passed.  correct_bounds and correct_null should result in a runtime error. Many of the test programs were complex and tested a large number features of the compiler, so relatively few group compilers were able to handle them.

Group O P Q R S* T U V W X Y Z
Group size 4 4 3 4 3 3 4 4 2 4 3 4
Compiler size (tokens) 90k 75k 76k 79k 61k 56k 88k 35k 64k 98k 55k 74k
correct_bounds.mod Compile  (690s+) 4.93 3.83 4.93 3.57 3.38 3.96 3.06 5.33 5.66 3.43 3.54
Run  - failed asm ok asm ok asm asm ok ok asm ok
.obj size - 3561 - 3133 - 2681 - - 2880 3217 - 3077
correct_null.mod Compile  rx 4.29 4.21 5.16 2.17 3.50 3.92 rx 5.50 4.42 3.38 3.95
Run  - ok asm ok asm ok asm - ok ok asm ok
.obj size - 2958 - 4271 - 2713 - - 2401 3032 - 3115
correct_call.mod Compile  sem 9.89 cmp 5.99 sem 4.97 sem rx 8.58 20.08 7.67 3.94
Run  - 0.06 - 0.06 - 0.04 - - 0.05 0.06 0.05 0.54
.obj size - 15259 - 16284 - 12618 - - 15394 18374 20058 13707
argsdump.mod Compile  12.42 3.98 4.53 5.09 6.34 7.70 5.00 2.76 6.19 4.65 3.04 3.37
Run  0.06 0.05 0.05 0.05 0.06 0.06 0.04 asm 0.05 0.05 failed 0.04
.obj size 2729 3083 2548 2975 3583 2610 2210 - 2453 2710 3007 3016
fold1000.mod Compile  4.01 4.56 3.75 4.20 2.74 3.81 3.86 8.44 6.53 4.85 3.36 3.90
Run  failed 0.05 0.05 0.06 failed 0.05 0.05 link 0.07 0.05 0.06 0.05
.obj size 1959 2044 1729 3116 2018 2066 2042 28753 1758 2374 2146 1775
GA.mod, random.in Compile  rx 63.90 36.06 11.09 sem 10.33 sem rx 22.10 cmp rx 5.20
Run  - 88.12 asm crash - 107.55 - - 130.26 - - 69.71
.obj size - 69873 - 40490 - 45559 - - 51087 - - 40502
gps.mod Compile  3.92 5.71 4.10 5.25 2.93 4.11 3.73 2.63 6.29 6.69 3.45 3.93
Run  asm 0.05 asm 0.05 asm 0.05 asm asm 0.08 failed asm 0.06
.obj size - 5900 - 6873 - 5763 - - 5482 5806 - 5103
Collection.int, Collection.mod, hash.mod Compile  sem/sem rx/sem cmp/sem rx/cmp sem/rx 6.3/sem sem/sem rx/rx 7.4/sem 17.2/rx sem/sem 4.5/sem
Run  - - - - - - - - - - - -
.obj size - - - - - 17696 - - 18642 18106 - 14877
kmp_test.mod, kmp.int, kmp.mod, kmp.in Compile  rx/(185s+) 7.5/9.7 5.0/7.0 5.0/5.8 rx/sem 5.7/5.6 sem/4.9 rx/rx 7.0/6.8 8.1/9.2 4.41/5.34 4.2/4.4
Run  - 5.75 4.54 2.58 - (301s+) - - crash 4.51 link 4.57
.obj size - 7k/12k 5k/10k 6k/11k - 5k/12k -/8k - 6k/12k 6k/8k 7k/15k 6k/10k
ListSearch.mod, random.in Compile  rx 17.54 11.97 7.33 rx 7.16 sem rx 18.72 32.78 rx 4.44
Run  - 8.49 asm crash - 24.78 - - 9.07 10.22 - 6.79
.obj size - 22657 - 21283 - 17658 - - 19911 22423 - 18678
 maze_test.mod, maze.int, maze.mod Compile  sem/(165s+) 18.6/sem cmp/cmp rx/sem sem/sem 4.8/rx sem/sem rx/rx sem/10.3 14.3/cmp 7.02/rx sem/5.6
Run  - - - - - - - - - - - -
.obj size - 20446/- - - - 15129/- - - -/41417 11111/- - -/45304
mdb_test.mod Compile  rx 16.42 23.01 5.75 sem 5.18 5.14 rx 10.74 14.41 6.68 4.96
Run  - 5.22 failed failed - 4.53 failed - 5.39 5.02 6.62 5.19
.obj size - 26165 17504 15942 - 16692 9027 - 17322 12265 23460 13234
mmm.mod Compile  95.27 59.94 cmp cmp sem 8.98 8.40 50.10 9.78 cmp 13.82 4.96
Run  crash 1.53 - - - 1.52 3.67 asm 1.83 - 3.71 1.77
.obj size 47047 33389 - - - 21507 14660 - 24629 - 32892 19711
sieve.mod Compile  5.82 8.89 5.51 5.01 5.07 3.56 4.06 rx 9.16 7.37 4.64 3.78
Run  crash 2.81 3.60 2.75 3.35 2.69 8.73 - 3.11 3.03 crash 2.80
.obj size 6554 6189 4501 4870 9094 4750 3726 - 5219 4709 6429 4934

* Group S used jview instead of Sun java to run their tests because of class file format errors.   Times are inconsistent with the other groups.

rx = RuntimeException during compile
sem = semantic error during compile
cmp = other compile-time error (parse error, tiling problem, assertion check failure)
link = link error (usually undefined symbol)
asm = incorrect assembly code
crash = run-time crash
failed = incorrect output or other run-time error
(Xs+) = killed after X seconds because run was taking too long