expcov report - Generated Sat Oct 15 21:52:09 2016

 Index  Statistics  Last 
Directory./
Filenamedhrystone.c
ModifiedTue Aug 14 09:18:53 1990

Pass Half Fail Excluded Total
Function
13
100.00%
0
0.00%
0
0.00%
13
100%
Expressions
159
89.33%
19
10.67%
0
0.00%
178
100%
Conditions
6
26.09%
15
65.22%
2
8.70%
0
0.00%
23
100%
MC/DC
0
0.00%
2
100.00%
0
0.00%
2
100%
Branches

if
0
0.00%
12
92.31%
1
7.69%
0
0.00%
13
100%
for
4
100.00%
0
0.00%
0
0.00%
0
0.00%
4
100%
while
2
100.00%
0
0.00%
0
0.00%
0
0.00%
2
100%
case
0
0.00%
5
100.00%
0
0.00%
0
0.00%
5
100%

1/***** hpda:net.sources / homxb!gemini /  1:58 am  Apr  1, 1986*/
2/*    EVERBODY:    Please read "APOLOGY" below. -rick 01/06/85
3 *            See introduction in net.arch, or net.micro
4 *
5 *    "DHRYSTONE" Benchmark Program
6 *
7 *    Version:    C/1.1, 12/01/84
8 *
9 *    Date:        PROGRAM updated 01/06/86, RESULTS updated 03/31/86
10 *
11 *    Author:        Reinhold P. Weicker,  CACM Vol 27, No 10, 10/84 pg. 1013
12 *            Translated from ADA by Rick Richardson
13 *            Every method to preserve ADA-likeness has been used,
14 *            at the expense of C-ness.
15 *
16 *    Compile:    cc -O dry.c -o drynr            : No registers
17 *            cc -O -DREG=register dry.c -o dryr    : Registers
18 *
19 *    Defines:    Defines are provided for old C compiler's
20 *            which don't have enums, and can't assign structures.
21 *            The time(2) function is library dependant; Most
22 *            return the time in seconds, but beware of some, like
23 *            Aztec C, which return other units.
24 *            The LOOPS define is initially set for 50000 loops.
25 *            If you have a machine with large integers and is
26 *            very fast, please change this number to 500000 to
27 *            get better accuracy.  Please select the way to
28 *            measure the execution time using the TIME define.
29 *            For single user machines, time(2) is adequate. For
30 *            multi-user machines where you cannot get single-user
31 *            access, use the times(2) function.  If you have
32 *            neither, use a stopwatch in the dead of night.
33 *            Use a "printf" at the point marked "start timer"
34 *            to begin your timings. DO NOT use the UNIX "time(1)"
35 *            command, as this will measure the total time to
36 *            run this program, which will (erroneously) include
37 *            the time to malloc(3) storage and to compute the
38 *            time it takes to do nothing.
39 *
40 *    Run:        drynr; dryr
41 *
42 *    Results:    If you get any new machine/OS results, please send to:
43 *
44 *                ihnp4!castor!pcrat!rick
45 *
46 *            and thanks to all that do.  Space prevents listing
47 *            the names of those who have provided some of these
48 *            results.  I'll be forwarding these results to
49 *            Rheinhold Weicker.
50 *
51 *    Note:        I order the list in increasing performance of the
52 *            "with registers" benchmark.  If the compiler doesn't
53 *            provide register variables, then the benchmark
54 *            is the same for both REG and NOREG.
55 *
56 *    PLEASE:        Send complete information about the machine type,
57 *            clock speed, OS and C manufacturer/version.  If
58 *            the machine is modified, tell me what was done.
59 *            On UNIX, execute uname -a and cc -V to get this info.
60 *
61 *    80x8x NOTE:    80x8x benchers: please try to do all memory models
62 *            for a particular compiler.
63 *
64 *    APOLOGY (1/30/86):
65 *        Well, I goofed things up!  As pointed out by Haakon Bugge,
66 *        the line of code marked "GOOF" below was missing from the
67 *        Dhrystone distribution for the last several months.  It
68 *        *WAS* in a backup copy I made last winter, so no doubt it
69 *        was victimized by sleepy fingers operating vi!
70 *
71 *        The effect of the line missing is that the reported benchmarks
72 *        are 15% too fast (at least on a 80286).  Now, this creates
73 *        a dilema - do I throw out ALL the data so far collected
74 *        and use only results from this (corrected) version, or
75 *        do I just keep collecting data for the old version?
76 *
77 *        Since the data collected so far *is* valid as long as it
78 *        is compared with like data, I have decided to keep
79 *        TWO lists- one for the old benchmark, and one for the
80 *        new.  This also gives me an opportunity to correct one
81 *        other error I made in the instructions for this benchmark.
82 *        My experience with C compilers has been mostly with
83 *        UNIX 'pcc' derived compilers, where the 'optimizer' simply
84 *        fixes sloppy code generation (peephole optimization).
85 *        But today, there exist C compiler optimizers that will actually
86 *        perform optimization in the Computer Science sense of the word,
87 *        by removing, for example, assignments to a variable whose
88 *        value is never used.  Dhrystone, unfortunately, provides
89 *        lots of opportunities for this sort of optimization.
90 *
91 *        I request that benchmarkers re-run this new, corrected
92 *        version of Dhrystone, turning off or bypassing optimizers
93 *        which perform more than peephole optimization.  Please
94 *        indicate the version of Dhrystone used when reporting the
95 *        results to me.
96 *        
97 * RESULTS BEGIN HERE
98 *
99 *----------------DHRYSTONE VERSION 1.1 RESULTS BEGIN--------------------------
100 *
101 * MACHINE    MICROPROCESSOR    OPERATING    COMPILER    DHRYSTONES/SEC.
102 * TYPE                SYSTEM                NO REG    REGS
103 * --------------------------    ------------    -----------    ---------------
104 * Apple IIe    65C02-1.02Mhz    DOS 3.3        Aztec CII v1.05i  37      37
105 * -        Z80-2.5Mhz    CPM-80 v2.2    Aztec CII v1.05g  91      91
106 * -        8086-8Mhz    RMX86 V6    Intel C-86 V2.0     197     203LM??
107 * IBM PC/XT    8088-4.77Mhz    COHERENT 2.3.43    Mark Wiiliams     259     275
108 * -        8086-8Mhz    RMX86 V6    Intel C-86 V2.0     287     304 ??
109 * Fortune 32:16 68000-6Mhz    V7+sys3+4.1BSD  cc         360     346
110 * PDP-11/34A    w/FP-11C    UNIX V7m    cc         406     449
111 * Macintosh512    68000-7.7Mhz    Mac ROM O/S    DeSmet(C ware)     625     625
112 * VAX-11/750    w/FPA        UNIX 4.2BSD    cc         831     852
113 * DataMedia 932 68000-10Mhz    UNIX sysV    cc         837     888
114 * Plexus P35    68000-12.5Mhz    UNIX sysIII    cc         835     894
115 * ATT PC7300    68010-10Mhz    UNIX 5.0.3    cc         973    1034
116 * Compaq II    80286-8Mhz    MSDOS 3.1    MS C 3.0     1086    1140 LM
117 * IBM PC/AT    80286-7.5Mhz    Venix/286 SVR2  cc              1159    1254 *15
118 * Compaq II    80286-8Mhz    MSDOS 3.1    MS C 3.0     1190    1282 MM
119 * MicroVAX II    -        Mach/4.3    cc        1361    1385
120 * DEC uVAX II    -        Ultrix-32m v1.1    cc        1385    1399
121 * Compaq II    80286-8Mhz    MSDOS 3.1    MS C 3.0     1351    1428
122 * VAX 11/780    -        UNIX 4.2BSD    cc        1417    1441
123 * VAX-780/MA780        Mach/4.3    cc        1428    1470
124 * VAX 11/780    -        UNIX 5.0.1    cc 4.1.1.31    1650    1640
125 * Ridge 32C V1    -        ROS 3.3        Ridge C (older)    1628    1695
126 * Gould PN6005    -        UTX 1.1c+ (4.2)    cc        1732    1884
127 * Gould PN9080    custom ECL    UTX-32 1.1C    cc        4745    4992
128 * VAX-784    -        Mach/4.3    cc        5263    5555 &4
129 * VAX 8600    -        4.3 BSD        cc        6329    6423
130 * Amdahl 5860    -        UTS sysV    cc 1.22           28735   28846
131 * IBM3090/200    -        ?        ?           31250   31250
132 *
133 *
134 *----------------DHRYSTONE VERSION 1.0 RESULTS BEGIN--------------------------
135 *
136 * MACHINE    MICROPROCESSOR    OPERATING    COMPILER    DHRYSTONES/SEC.
137 * TYPE                SYSTEM                NO REG    REGS
138 * --------------------------    ------------    -----------    ---------------
139 * Commodore 64    6510-1MHz    C64 ROM        C Power 2.8      36      36
140 * HP-110    8086-5.33Mhz    MSDOS 2.11    Lattice 2.14     284     284
141 * IBM PC/XT    8088-4.77Mhz    PC/IX        cc         271     294
142 * CCC 3205    -        Xelos(SVR2)     cc         558     592
143 * Perq-II    2901 bitslice    Accent S5c     cc (CMU)     301     301
144 * IBM PC/XT    8088-4.77Mhz    COHERENT 2.3.43    MarkWilliams cc  296     317
145 * Cosmos    68000-8Mhz    UniSoft        cc         305     322
146 * IBM PC/XT    8088-4.77Mhz    Venix/86 2.0    cc         297     324
147 * DEC PRO 350  11/23           Venix/PRO SVR2  cc               299     325
148 * IBM PC    8088-4.77Mhz    MSDOS 2.0    b16cc 2.0     310     340
149 * PDP11/23    11/23           Venix (V7)      cc               320     358
150 * Commodore Amiga        ?        Lattice 3.02     368     371
151 * PC/XT        8088-4.77Mhz    Venix/86 SYS V  cc               339     377
152 * IBM PC    8088-4.77Mhz    MSDOS 2.0    CI-C86 2.20M     390     390
153 * IBM PC/XT    8088-4.77Mhz    PCDOS 2.1    Wizard 2.1     367     403
154 * IBM PC/XT    8088-4.77Mhz    PCDOS 3.1    Lattice 2.15     403     403 @
155 * Colex DM-6    68010-8Mhz    Unisoft SYSV    cc         378     410
156 * IBM PC    8088-4.77Mhz    PCDOS 3.1    Datalight 1.10     416     416
157 * IBM PC    NEC V20-4.77Mhz    MSDOS 3.1    MS 3.1          387     420
158 * IBM PC/XT    8088-4.77Mhz    PCDOS 2.1    Microsoft 3.0     390     427
159 * IBM PC    NEC V20-4.77Mhz    MSDOS 3.1    MS 3.1 (186)      393     427
160 * PDP-11/34    -        UNIX V7M    cc         387     438
161 * IBM PC    8088, 4.77mhz    PC-DOS 2.1    Aztec C v3.2d     423     454
162 * Tandy 1000    V20, 4.77mhz    MS-DOS 2.11    Aztec C v3.2d     423     458
163 * Tandy TRS-16B 68000-6Mhz    Xenix 1.3.5    cc         438     458
164 * PDP-11/34    -        RSTS/E        decus c         438     495
165 * Onyx C8002    Z8000-4Mhz    IS/1 1.1 (V7)    cc         476     511
166 * Tandy TRS-16B 68000-6Mhz    Xenix 1.3.5    Green Hills     609     617
167 * DEC PRO 380  11/73           Venix/PRO SVR2  cc               577     628
168 * FHL QT+    68000-10Mhz    Os9/68000    version 1.3     603     649 FH
169 * Apollo DN550    68010-?Mhz    AegisSR9/IX    cc 3.12         666     666
170 * HP-110    8086-5.33Mhz    MSDOS 2.11    Aztec-C         641     676 
171 * ATT PC6300    8086-8Mhz    MSDOS 2.11    b16cc 2.0     632     684
172 * IBM PC/AT    80286-6Mhz    PCDOS 3.0    CI-C86 2.1     666     684
173 * Tandy 6000    68000-8Mhz    Xenix 3.0    cc         694     694
174 * IBM PC/AT    80286-6Mhz    Xenix 3.0    cc         684     704 MM
175 * Macintosh    68000-7.8Mhz 2M    Mac Rom        Mac C 32 bit int 694     704
176 * Macintosh    68000-7.7Mhz    -        MegaMax C 2.0     661     709
177 * Macintosh512    68000-7.7Mhz    Mac ROM O/S    DeSmet(C ware)     714     714
178 * IBM PC/AT    80286-6Mhz    Xenix 3.0    cc         704     714 LM
179 * Codata 3300    68000-8Mhz    UniPlus+ (v7)    cc         678     725
180 * WICAT MB    68000-8Mhz    System V    WICAT C 4.1     585     731 ~
181 * Cadmus 9000    68010-10Mhz    UNIX        cc         714     735
182 * AT&T 6300    8086-8Mhz       Venix/86 SVR2   cc               668     743
183 * Cadmus 9790    68010-10Mhz 1MB    SVR0,Cadmus3.7    cc         720     747
184 * NEC PC9801F    8086-8Mhz    PCDOS 2.11    Lattice 2.15     768      -  @
185 * ATT PC6300    8086-8Mhz    MSDOS 2.11    CI-C86 2.20M     769     769
186 * Burroughs XE550 68010-10Mhz    Centix 2.10    cc         769     769 CT1
187 * EAGLE/TURBO  8086-8Mhz       Venix/86 SVR2   cc               696     779
188 * ALTOS 586    8086-10Mhz    Xenix 3.0b    cc          724     793
189 * DEC 11/73    J-11 micro    Ultrix-11 V3.0    cc         735     793
190 * ATT 3B2/300    WE32000-?Mhz    UNIX 5.0.2    cc         735     806
191 * Apollo DN320    68010-?Mhz    AegisSR9/IX    cc 3.12         806     806
192 * IRIS-2400    68010-10Mhz    UNIX System V    cc         772     829
193 * Atari 520ST  68000-8Mhz      TOS             DigResearch      839     846
194 * IBM PC/AT    80286-6Mhz    PCDOS 3.0    MS 3.0(large)     833     847 LM
195 * WICAT MB    68000-8Mhz    System V    WICAT C 4.1     675     853 S~
196 * VAX 11/750    -        Ultrix 1.1    4.2BSD cc     781     862
197 * CCC  7350A    68000-8MHz    UniSoft V.2    cc         821     875
198 * VAX 11/750    -        UNIX 4.2bsd    cc         862     877
199 * Fast Mac    68000-7.7Mhz    -        MegaMax C 2.0     839     904 +
200 * IBM PC/XT    8086-9.54Mhz    PCDOS 3.1    Microsoft 3.0     833     909 C1
201 * DEC 11/44            Ultrix-11 V3.0    cc         862     909
202 * Macintosh    68000-7.8Mhz 2M    Mac Rom        Mac C 16 bit int 877     909 S
203 * CCC 3210    -        Xelos R01(SVR2)    cc         849     924
204 * CCC 3220    -               Ed. 7 v2.3      cc         892     925
205 * IBM PC/AT    80286-6Mhz    Xenix 3.0    cc -i         909     925
206 * AT&T 6300    8086, 8mhz    MS-DOS 2.11    Aztec C v3.2d     862     943
207 * IBM PC/AT    80286-6Mhz    Xenix 3.0    cc         892     961
208 * VAX 11/750    w/FPA        Eunice 3.2    cc         914     976
209 * IBM PC/XT    8086-9.54Mhz    PCDOS 3.1    Wizard 2.1     892     980 C1
210 * IBM PC/XT    8086-9.54Mhz    PCDOS 3.1    Lattice 2.15     980     980 C1
211 * Plexus P35    68000-10Mhz    UNIX System III cc         984     980
212 * PDP-11/73    KDJ11-AA 15Mhz    UNIX V7M 2.1    cc         862     981
213 * VAX 11/750    w/FPA        UNIX 4.3bsd    cc         994     997
214 * IRIS-1400    68010-10Mhz    UNIX System V    cc         909    1000
215 * IBM PC/AT    80286-6Mhz    Venix/86 2.1    cc         961    1000
216 * IBM PC/AT    80286-6Mhz    PCDOS 3.0    b16cc 2.0     943    1063
217 * Zilog S8000/11 Z8001-5.5Mhz    Zeus 3.2    cc        1011    1084
218 * NSC ICM-3216 NSC 32016-10Mhz    UNIX SVR2    cc        1041    1084
219 * IBM PC/AT    80286-6Mhz    PCDOS 3.0    MS 3.0(small)    1063    1086
220 * VAX 11/750    w/FPA        VMS        VAX-11 C 2.0     958    1091
221 * Stride    68000-10Mhz    System-V/68    cc        1041    1111
222 * Plexus P/60  MC68000-12.5Mhz    UNIX SYSIII    Plexus        1111    1111
223 * ATT PC7300    68010-10Mhz    UNIX 5.0.2    cc        1041    1111
224 * CCC 3230    -        Xelos R01(SVR2)    cc        1040    1126
225 * Stride    68000-12Mhz    System-V/68    cc        1063    1136
226 * IBM PC/AT    80286-6Mhz      Venix/286 SVR2  cc              1056    1149
227 * Plexus P/60  MC68000-12.5Mhz    UNIX SYSIII    Plexus        1111    1163 T
228 * IBM PC/AT    80286-6Mhz    PCDOS 3.0    Datalight 1.10    1190    1190
229 * ATT PC6300+    80286-6Mhz    MSDOS 3.1    b16cc 2.0    1111    1219
230 * IBM PC/AT    80286-6Mhz    PCDOS 3.1    Wizard 2.1    1136    1219
231 * Sun2/120    68010-10Mhz    Sun 4.2BSD    cc        1136    1219
232 * IBM PC/AT    80286-6Mhz    PCDOS 3.0    CI-C86 2.20M    1219    1219
233 * WICAT PB    68000-8Mhz    System V    WICAT C 4.1     998    1226 ~
234 * MASSCOMP 500    68010-10MHz    RTU V3.0    cc (V3.2)    1156    1238
235 * Alliant FX/8 IP (68012-12Mhz) Concentrix    cc -ip;exec -i     1170    1243 FX
236 * Cyb DataMate    68010-12.5Mhz    Uniplus 5.0    Unisoft cc    1162    1250
237 * PDP 11/70    -        UNIX 5.2    cc        1162    1250
238 * IBM PC/AT    80286-6Mhz    PCDOS 3.1    Lattice 2.15    1250    1250
239 * IBM PC/AT    80286-7.5Mhz    Venix/86 2.1    cc        1190    1315 *15
240 * Sun2/120    68010-10Mhz    Standalone    cc        1219    1315
241 * Intel 380    80286-8Mhz    Xenix R3.0up1    cc        1250    1315 *16
242 * Sequent Balance 8000    NS32032-10MHz    Dynix 2.0    cc    1250    1315 N12
243 * IBM PC/DSI-32 32032-10Mhz    MSDOS 3.1    GreenHills 2.14    1282    1315 C3
244 * ATT 3B2/400    WE32100-?Mhz    UNIX 5.2    cc        1315    1315
245 * CCC 3250XP    -        Xelos R01(SVR2)    cc        1215    1318
246 * IBM PC/RT 032 RISC(801?)?Mhz BSD 4.2         cc              1248    1333 RT
247 * DG MV4000    -        AOS/VS 5.00    cc        1333    1333
248 * IBM PC/AT    80286-8Mhz    Venix/86 2.1    cc        1275    1380 *16
249 * IBM PC/AT    80286-6Mhz    MSDOS 3.0    Microsoft 3.0    1250    1388
250 * ATT PC6300+    80286-6Mhz    MSDOS 3.1    CI-C86 2.20M    1428    1428
251 * COMPAQ/286   80286-8Mhz      Venix/286 SVR2  cc              1326    1443
252 * IBM PC/AT    80286-7.5Mhz    Venix/286 SVR2  cc              1333    1449 *15
253 * WICAT PB    68000-8Mhz    System V    WICAT C 4.1    1169    1464 S~
254 * Tandy II/6000 68000-8Mhz    Xenix 3.0    cc          1384    1477
255 * MicroVAX II    -        Mach/4.3    cc        1513    1536
256 * WICAT MB    68000-12.5Mhz    System V    WICAT C 4.1    1246    1537 ~
257 * IBM PC/AT    80286-9Mhz      SCO Xenix V     cc              1540    1556 *18
258 * Cyb DataMate    68010-12.5Mhz    Uniplus 5.0    Unisoft cc    1470    1562 S
259 * VAX 11/780    -        UNIX 5.2    cc        1515    1562
260 * MicroVAX-II    -        -        -        1562    1612
261 * VAX-780/MA780        Mach/4.3    cc        1587    1612
262 * VAX 11/780    -        UNIX 4.3bsd    cc        1646    1662
263 * Apollo DN660    -        AegisSR9/IX    cc 3.12        1666    1666
264 * ATT 3B20    -        UNIX 5.2    cc        1515    1724
265 * NEC PC-98XA    80286-8Mhz    PCDOS 3.1    Lattice 2.15    1724    1724 @
266 * HP9000-500    B series CPU    HP-UX 4.02    cc        1724    -
267 * Ridge 32C V1    -        ROS 3.3        Ridge C (older)    1776    -
268 * IBM PC/STD    80286-8Mhz    MSDOS 3.0     Microsoft 3.0    1724    1785 C2
269 * WICAT MB    68000-12.5Mhz    System V    WICAT C 4.1    1450    1814 S~
270 * WICAT PB    68000-12.5Mhz    System V    WICAT C 4.1    1530    1898 ~
271 * DEC-2065    KL10-Model B    TOPS-20 6.1FT5    Port. C Comp.    1937    1946
272 * Gould PN6005    -        UTX 1.1(4.2BSD)    cc        1675    1964
273 * DEC2060    KL-10        TOPS-20        cc        2000    2000 NM
274 * Intel 310AP    80286-8Mhz    Xenix 3.0    cc        1893    2009
275 * VAX 11/785    -        UNIX 5.2    cc        2083    2083
276 * VAX 11/785    -        VMS        VAX-11 C 2.0    2083    2083
277 * VAX 11/785    -        UNIX SVR2    cc        2123    2083
278 * VAX 11/785   -               ULTRIX-32 1.1   cc        2083    2091 
279 * VAX 11/785    -        UNIX 4.3bsd    cc        2135    2136
280 * WICAT PB    68000-12.5Mhz    System V    WICAT C 4.1    1780    2233 S~
281 * Pyramid 90x    -        OSx 2.3        cc        2272    2272
282 * Pyramid 90x    FPA,cache,4Mb    OSx 2.5        cc no -O    2777    2777
283 * Pyramid 90x    w/cache        OSx 2.5        cc w/-O        3333    3333
284 * IBM-4341-II    -        VM/SP3        Waterloo C 1.2  3333    3333
285 * IRIS-2400T    68020-16.67Mhz    UNIX System V    cc        3105    3401
286 * Celerity C-1200 ?        UNIX 4.2BSD    cc        3485    3468
287 * SUN 3/75    68020-16.67Mhz    SUN 4.2 V3    cc        3333    3571
288 * IBM-4341    Model 12    UTS 5.0        ?        3685    3685
289 * SUN-3/160    68020-16.67Mhz  Sun 4.2 V3.0A   cc        3381    3764
290 * Sun 3/180    68020-16.67Mhz    Sun 4.2        cc        3333    3846
291 * IBM-4341    Model 12    UTS 5.0        ?        3910    3910 MN
292 * MC 5400    68020-16.67MHz    RTU V3.0    cc (V4.0)    3952    4054
293 * Intel 386/20    80386-12.5Mhz    PMON debugger    Intel C386v0.2    4149    4386
294 * NCR Tower32  68020-16.67Mhz  SYS 5.0 Rel 2.0 cc              3846    4545
295 * MC 5600/5700    68020-16.67MHz    RTU V3.0    cc (V4.0)    4504    4746 %
296 * Intel 386/20    80386-12.5Mhz    PMON debugger    Intel C386v0.2    4534    4794 i1
297 * Intel 386/20    80386-16Mhz    PMON debugger    Intel C386v0.2    5304    5607
298 * Gould PN9080    custom ECL    UTX-32 1.1C    cc        5369    5676
299 * Gould 1460-342 ECL proc      UTX/32 1.1/c    cc              5342    5677 G1
300 * VAX-784    -        Mach/4.3    cc        5882    5882 &4
301 * Intel 386/20    80386-16Mhz    PMON debugger    Intel C386v0.2    5801    6133 i1
302 * VAX 8600    -        UNIX 4.3bsd    cc        7024    7088
303 * VAX 8600    -        VMS        VAX-11 C 2.0    7142    7142
304 * Alliant FX/8 CE        Concentrix    cc -ce;exec -c     6952    7655 FX
305 * CCI POWER 6/32        COS(SV+4.2)    cc        7500    7800
306 * CCI POWER 6/32        POWER 6 UNIX/V    cc        8236    8498
307 * CCI POWER 6/32        4.2 Rel. 1.2b    cc        8963    9544
308 * Sperry (CCI Power 6)        4.2BSD        cc        9345   10000
309 * CRAY-X-MP/12       105Mhz    COS 1.14    Cray C         10204   10204
310 * IBM-3083    -        UTS 5.0 Rel 1    cc           16666   12500
311 * CRAY-1A        80Mhz    CTSS        Cray C 2.0     12100   13888
312 * IBM-3083    -        VM/CMS HPO 3.4    Waterloo C 1.2 13889   13889
313 * Amdahl 470 V/8         UTS/V 5.2       cc v1.23       15560   15560
314 * CRAY-X-MP/48       105Mhz    CTSS        Cray C 2.0     15625   17857
315 * Amdahl 580    -        UTS 5.0 Rel 1.2    cc v1.5        23076   23076
316 * Amdahl 5860             UTS/V 5.2       cc v1.23       28970   28970
317 *
318 * NOTE
319 *   *   Crystal changed from 'stock' to listed value.
320 *   +   This Macintosh was upgraded from 128K to 512K in such a way that
321 *       the new 384K of memory is not slowed down by video generator accesses.
322 *   %   Single processor; MC == MASSCOMP
323 *   NM  A version 7 C compiler written at New Mexico Tech.
324 *   @   vanilla Lattice compiler used with MicroPro standard library
325 *   S   Shorts used instead of ints
326 *   T     with Chris Torek's patches (whatever they are).
327 *   ~   For WICAT Systems: MB=MultiBus, PB=Proprietary Bus
328 *   LM  Large Memory Model. (Otherwise, all 80x8x results are small model)
329 *   MM  Medium Memory Model. (Otherwise, all 80x8x results are small model)
330 *   C1  Univation PC TURBO Co-processor; 9.54Mhz 8086, 640K RAM
331 *   C2  Seattle Telecom STD-286 board
332 *   C3  Definicon DSI-32 coprocessor
333 *   C?  Unknown co-processor board?
334 *   CT1 Convergent Technologies MegaFrame, 1 processor.
335 *   MN  Using Mike Newtons 'optimizer' (see net.sources).
336 *   G1  This Gould machine has 2 processors and was able to run 2 dhrystone
337 *       Benchmarks in parallel with no slowdown.
338 *   FH  FHC == Frank Hogg Labs (Hazelwood Uniquad 2 in an FHL box).
339 *   FX  The Alliant FX/8 is a system consisting of 1-8 CEs (computation
340 *     engines) and 1-12 IPs (interactive processors). Note N8 applies.
341 *   RT  This is one of the RT's that CMU has been using for awhile.  I'm
342 *     not sure that this is identical to the machine that IBM is selling
343 *     to the public.
344 *   i1  Normally, the 386/20 starter kit has a 16k direct mapped cache
345 *     which inserts 2 or 3 wait states on a write thru.  These results
346 *     were obtained by disabling the write-thru, or essentially turning
347 *     the cache into 0 wait state memory.
348 *   Nnn This machine has multiple processors, allowing "nn" copies of the
349 *     benchmark to run in the same time as 1 copy.
350 *   &nn This machine has "nn" processors, and the benchmark results were
351 *     obtained by having all "nn" processors working on 1 copy of dhrystone.
352 *     (Note, this is different than Nnn. Salesmen like this measure).
353 *   ?   I don't trust results marked with '?'.  These were sent to me with
354 *       either incomplete info, or with times that just don't make sense.
355 *     ?? means I think the performance is too poor, ?! means too good.
356 *       If anybody can confirm these figures, please respond.
357 *
358 *  ABBREVIATIONS
359 *    CCC    Concurrent Computer Corp. (was Perkin-Elmer)
360 *    MC    Masscomp
361 *
362 *--------------------------------RESULTS END----------------------------------
363 *
364 *    The following program contains statements of a high-level programming
365 *    language (C) in a distribution considered representative:
366 *
367 *    assignments            53%
368 *    control statements        32%
369 *    procedure, function calls    15%
370 *
371 *    100 statements are dynamically executed.  The program is balanced with
372 *    respect to the three aspects:
373 *        - statement type
374 *        - operand type (for simple data types)
375 *        - operand access
376 *            operand global, local, parameter, or constant.
377 *
378 *    The combination of these three aspects is balanced only approximately.
379 *
380 *    The program does not compute anything meaningfull, but it is
381 *    syntactically and semantically correct.
382 *
383 */
384
385/* Accuracy of timings and human fatigue controlled by next two lines */
386/*#define LOOPS    5000        /* Use this for slow or 16 bit machines */
387/*#define LOOPS    50000        /* Use this for slow or 16 bit machines */
388#define LOOPS    500000        /* Use this for faster machines */
389
390/* Compiler dependent options */
391#undef    NOENUM            /* Define if compiler has no enum's */
392#undef    NOSTRUCTASSIGN        /* Define if compiler can't assign structures */
393
394/* define only one of the next three defines */
395/*#define GETRUSAGE        /* Use getrusage(2) time function */
396/*#define TIMES            /* Use times(2) time function */
397/*#define TIME            /* Use time(2) time function */
398
399/* define the granularity of your times(2) function (when used) */
400/*#define HZ    60        /* times(2) returns 1/60 second (most) */
401/*#define HZ    100        /* times(2) returns 1/100 second (WECo) */
402
403/* for compatibility with goofed up version */
404/*#define GOOF            /* Define if you want the goofed up version */
405
406#ifdef GOOF
407char    Version[] = "1.0";
408#else
409char    Version[] = "1.1";
410#endif
411
412#ifdef    NOSTRUCTASSIGN
413#define    structassign(d, s)    memcpy(&(d), &(s), sizeof(d))
414#else
415#define    structassign(d, s)    d = : pass=500000
= : enter=0, leave=0
=
 s
416#endif
417
418#ifdef    NOENUM
419#define    Ident1    1
420#define    Ident2    2
421#define    Ident3    3
422#define    Ident4    4
423#define    Ident5    5
424typedef int    Enumeration;
425#else
426typedef enum    {Ident1, Ident2, Ident3, Ident4, Ident5} Enumeration;
427#endif
428
429typedef int    OneToThirty;
430typedef int    OneToFifty;
431typedef char    CapitalLetter;
432typedef char    String30[31];
433typedef int    Array1Dim[51];
434typedef int    Array2Dim[51][51];
435
436struct    Record
437{
438    struct Record        *PtrComp;
439    Enumeration        Discr;
440    Enumeration        EnumComp;
441    OneToFifty        IntComp;
442    String30        StringComp;
443};
444
445typedef struct Record     RecordType;
446typedef RecordType *    RecordPtr;
447typedef int        boolean;
448
449#define    NULL        0
450#define    TRUE        1
451#define    FALSE        0
452
453#ifndef REG
454#define    REG
455#endif
456
457extern Enumeration    Func1();
458extern boolean        Func2();
459
460#ifdef TIMES
461#include <sys/param.h>
462#include <sys/types.h>
463#include <sys/times.h>
464#endif
465#ifdef GETRUSAGE
466#include <sys/time.h>
467#include <sys/resource.h>
468#endif
469
470main : call=1
m
ain()
471{
472    function : enter=1, leave=1
P
roc0();
473    function : enter=1, leave=0
e
xit(0);
474}
475
476/*
477 * Package 1
478 */
479int        IntGlob;
480boolean        BoolGlob;
481char        Char1Glob;
482char        Char2Glob;
483Array1Dim    Array1Glob;
484Array2Dim    Array2Glob;
485RecordPtr    PtrGlb;
486RecordPtr    PtrGlbNext;
487
488Proc0 : call=1
P
roc0()
489{
490    OneToFifty        IntLoc1;
491    REG OneToFifty        IntLoc2;
492    OneToFifty        IntLoc3;
493    REG char        CharLoc;
494    REG char        CharIndex;
495    Enumeration         EnumLoc;
496    String30        String1Loc;
497    String30        String2Loc;
498    extern char        *malloc();
499
500    register unsigned int    i;
501#ifdef TIME
502    long            time();
503    long            starttime;
504    long            benchtime;
505    long            nulltime;
506
507    starttime = time( (long *) 0);
508    for (i = 0; i < LOOPS; ++i);
509    nulltime = time( (long *) 0) - starttime; /* Computes o'head of loop */
510#endif
511#ifdef TIMES
512    time_t            starttime;
513    time_t            benchtime;
514    time_t            nulltime;
515    struct tms        tms;
516
517    times : enter=1, leave=1

times : /usr/include/sys/times.h line=49 column=16
t
imes(&tms : dhrystone.c line=515 column=14
t
ms); starttime : dhrystone.c line=512 column=11
s
tarttime = : pass=1
=
 tms : dhrystone.c line=515 column=14
t
ms.tms_utime : /usr/include/sys/times.h line=37 column=13 tms_utime;
518    for : true=500000, false=1
f
or (i : dhrystone.c line=500 column=24
i
 = : pass=1
=
 0; i : dhrystone.c line=500 column=24
i
 < : true=500000, false=1
<
 LOOPS; ++ : pass=500000
+
+i : dhrystone.c line=500 column=24
i
);
519    times : enter=1, leave=1

times : /usr/include/sys/times.h line=49 column=16
t
imes(&tms : dhrystone.c line=515 column=14
t
ms);
520    nulltime : dhrystone.c line=514 column=11
n
ulltime = : pass=1
=
 tms : dhrystone.c line=515 column=14
t
ms.tms_utime : /usr/include/sys/times.h line=37 column=13 tms_utime - : pass=1
-
 starttime : dhrystone.c line=512 column=11
s
tarttime; /* Computes overhead of looping */
521#endif
522#ifdef GETRUSAGE
523    struct rusage starttime;
524    struct rusage endtime;
525    struct timeval nulltime;
526
527    getrusage(RUSAGE_SELF, &starttime);
528    for (i = 0; i < LOOPS; ++i);
529    getrusage(RUSAGE_SELF, &endtime);
530    nulltime.tv_sec  = endtime.ru_utime.tv_sec  - starttime.ru_utime.tv_sec;
531    nulltime.tv_usec = endtime.ru_utime.tv_usec - starttime.ru_utime.tv_usec;
532#endif
533
534    PtrGlbNext : dhrystone.c line=486 column=11
P
trGlbNext = : pass=1
=
 (RecordPtr) malloc : enter=1, leave=1

malloc : dhrystone.c line=498 column=16
m
alloc(sizeof(RecordType));
535    PtrGlb : dhrystone.c line=485 column=11
P
trGlb = : pass=1
=
 (RecordPtr) malloc : enter=1, leave=1

malloc : dhrystone.c line=498 column=16
m
alloc(sizeof(RecordType));
536    PtrGlb : dhrystone.c line=485 column=11
P
trGlb-> : enter=1, leave=1
-
>PtrComp : dhrystone.c line=438 column=18
P
trComp = : enter=1, leave=1
=
 PtrGlbNext : dhrystone.c line=486 column=11
P
trGlbNext;
537    PtrGlb : dhrystone.c line=485 column=11
P
trGlb-> : enter=1, leave=1
-
>Discr : dhrystone.c line=439 column=15
D
iscr = : enter=1, leave=1
=
 Ident1 : dhrystone.c line=426 column=15
I
dent1;
538    PtrGlb : dhrystone.c line=485 column=11
P
trGlb-> : enter=1, leave=1
-
>EnumComp : dhrystone.c line=440 column=15
E
numComp = : enter=1, leave=1
=
 Ident3 : dhrystone.c line=426 column=31
I
dent3;
539    PtrGlb : dhrystone.c line=485 column=11
P
trGlb-> : enter=1, leave=1
-
>IntComp : dhrystone.c line=441 column=14
I
ntComp = : enter=1, leave=1
=
 40;
540    function : enter=1, leave=1
s
trcpy(PtrGlb : dhrystone.c line=485 column=11
P
trGlb-> : enter=1, leave=1
-
>StringComp : dhrystone.c line=442 column=12
S
tringComp, "DHRYSTONE PROGRAM, SOME STRING");
541#ifndef    GOOF
542    function : enter=1, leave=1
s
trcpy(String1Loc : dhrystone.c line=496 column=12
S
tring1Loc, "DHRYSTONE PROGRAM, 1'ST STRING");    /*GOOF*/
543#endif
544    Array2Glob : dhrystone.c line=484 column=11
A
rray2Glob[] : enter=1, leave=1
[
8][7] = : enter=1, leave=1
=
 10;    /* Was missing in published program */
545
546/*****************
547-- Start Timer --
548*****************/
549#ifdef TIME
550    starttime = time( (long *) 0);
551#endif
552#ifdef TIMES
553    times : enter=1, leave=1

times : /usr/include/sys/times.h line=49 column=16
t
imes(&tms : dhrystone.c line=515 column=14
t
ms); starttime : dhrystone.c line=512 column=11
s
tarttime = : pass=1
=
 tms : dhrystone.c line=515 column=14
t
ms.tms_utime : /usr/include/sys/times.h line=37 column=13 tms_utime;
554#endif
555#ifdef GETRUSAGE
556    getrusage (RUSAGE_SELF, &starttime);
557#endif
558    for : true=500000, false=1
f
or (i : dhrystone.c line=500 column=24
i
 = : pass=1
=
 0; i : dhrystone.c line=500 column=24
i
 < : true=500000, false=1
<
 LOOPS; ++ : pass=500000
+
+i : dhrystone.c line=500 column=24
i
)
559    {
560
561        function : enter=500000, leave=500000
P
roc5();
562        function : enter=500000, leave=500000
P
roc4();
563        IntLoc1 : dhrystone.c line=490 column=14
I
ntLoc1 = : pass=500000
=
 2;
564        IntLoc2 : dhrystone.c line=491 column=18
I
ntLoc2 = : pass=500000
=
 3;
565        function : enter=500000, leave=500000
s
trcpy(String2Loc : dhrystone.c line=497 column=12
S
tring2Loc, "DHRYSTONE PROGRAM, 2'ND STRING");
566        EnumLoc : dhrystone.c line=495 column=16
E
numLoc = : pass=500000
=
 Ident2 : dhrystone.c line=426 column=23
I
dent2;
567        BoolGlob : dhrystone.c line=480 column=10
B
oolGlob = : pass=500000
=
 ! : true=500000, false=0
!
 Func2 : enter=500000, leave=500000

Func2 : dhrystone.c line=458 column=17
F
unc2(String1Loc : dhrystone.c line=496 column=12
S
tring1Loc, String2Loc : dhrystone.c line=497 column=12
S
tring2Loc);
568        while : true=500000, false=500000
w
hile (IntLoc1 : dhrystone.c line=490 column=14
I
ntLoc1 < : true=500000, false=500000
<
 IntLoc2 : dhrystone.c line=491 column=18
I
ntLoc2)
569        {
570            IntLoc3 : dhrystone.c line=492 column=14
I
ntLoc3 = : pass=500000
=
 5 * : pass=500000
*
 IntLoc1 : dhrystone.c line=490 column=14
I
ntLoc1 - : pass=500000
-
 IntLoc2 : dhrystone.c line=491 column=18
I
ntLoc2;
571            function : enter=500000, leave=500000
P
roc7(IntLoc1 : dhrystone.c line=490 column=14
I
ntLoc1, IntLoc2 : dhrystone.c line=491 column=18
I
ntLoc2, &IntLoc3 : dhrystone.c line=492 column=14
I
ntLoc3);
572            ++ : pass=500000
+
+IntLoc1 : dhrystone.c line=490 column=14
I
ntLoc1;
573        }
574        function : enter=500000, leave=500000
P
roc8(Array1Glob : dhrystone.c line=483 column=11
A
rray1Glob, Array2Glob : dhrystone.c line=484 column=11
A
rray2Glob, IntLoc1 : dhrystone.c line=490 column=14
I
ntLoc1, IntLoc3 : dhrystone.c line=492 column=14
I
ntLoc3);
575        function : enter=500000, leave=500000
P
roc1(PtrGlb : dhrystone.c line=485 column=11
P
trGlb);
576        for : true=1000000, false=500000
f
or (CharIndex : dhrystone.c line=494 column=12
C
harIndex = : pass=500000
=
 'A'; CharIndex : dhrystone.c line=494 column=12
C
harIndex <= : true=1000000, false=500000
<
Char2Glob : dhrystone.c line=482 column=7
C
har2Glob; ++ : pass=1000000
+
+CharIndex : dhrystone.c line=494 column=12
C
harIndex)
577            if : true=0, false=1000000
i
f (EnumLoc : dhrystone.c line=495 column=16
E
numLoc == : true=0, false=1000000
=
Func1 : enter=1000000, leave=1000000

Func1 : dhrystone.c line=457 column=20
F
unc1(CharIndex : dhrystone.c line=494 column=12
C
harIndex, 'C'))
578                function : enter=0, leave=0
P
roc6(Ident1 : dhrystone.c line=426 column=15
I
dent1, &EnumLoc : dhrystone.c line=495 column=16
E
numLoc);
579        IntLoc3 : dhrystone.c line=492 column=14
I
ntLoc3 = : pass=500000
=
 IntLoc2 : dhrystone.c line=491 column=18
I
ntLoc2 * : pass=500000
*
 IntLoc1 : dhrystone.c line=490 column=14
I
ntLoc1;
580        IntLoc2 : dhrystone.c line=491 column=18
I
ntLoc2 = : pass=500000
=
 IntLoc3 : dhrystone.c line=492 column=14
I
ntLoc3 / : pass=500000
/
 IntLoc1 : dhrystone.c line=490 column=14
I
ntLoc1;
581        IntLoc2 : dhrystone.c line=491 column=18
I
ntLoc2 = : pass=500000
=
 7 * : pass=500000
*
 (IntLoc3 : dhrystone.c line=492 column=14
I
ntLoc3 - : pass=500000
-
 IntLoc2 : dhrystone.c line=491 column=18
I
ntLoc2) - : pass=500000
-
 IntLoc1 : dhrystone.c line=490 column=14
I
ntLoc1;
582        function : enter=500000, leave=500000
P
roc2(&IntLoc1 : dhrystone.c line=490 column=14
I
ntLoc1);
583    }
584
585/*****************
586-- Stop Timer --
587*****************/
588
589#ifdef TIME
590    benchtime = time( (long *) 0) - starttime - nulltime;
591    printf("Dhrystone(%s) time for %ld passes = %ld\n",
592        Version,
593        (long) LOOPS, benchtime);
594    printf("This machine benchmarks at %ld dhrystones/second\n",
595        ((long) LOOPS) / benchtime);
596#endif
597#ifdef TIMES
598    times : enter=1, leave=1

times : /usr/include/sys/times.h line=49 column=16
t
imes(&tms : dhrystone.c line=515 column=14
t
ms);
599    benchtime : dhrystone.c line=513 column=11
b
enchtime = : pass=1
=
 tms : dhrystone.c line=515 column=14
t
ms.tms_utime : /usr/include/sys/times.h line=37 column=13 tms_utime - : pass=1
-
 starttime : dhrystone.c line=512 column=11
s
tarttime - : pass=1
-
 nulltime : dhrystone.c line=514 column=11
n
ulltime;
600    function : enter=1, leave=1
p
rintf("Dhrystone(%s) time for %ld passes = %ld\n",
601        Version : dhrystone.c line=409 column=6
V
ersion,
602        (long) LOOPS, benchtime : dhrystone.c line=513 column=11
b
enchtime/ : pass=1
/
HZ);
603    function : enter=1, leave=1
p
rintf("This machine benchmarks at %ld dhrystones/second\n",
604        ((long) LOOPS) * : pass=1
*
 HZ / : pass=1
/
 benchtime : dhrystone.c line=513 column=11
b
enchtime);
605#endif
606#ifdef GETRUSAGE
607    getrusage(RUSAGE_SELF, &endtime);
608    {
609        double t = (double)(endtime.ru_utime.tv_sec
610                - starttime.ru_utime.tv_sec
611                - nulltime.tv_sec)
612             + (double)(endtime.ru_utime.tv_usec
613                - starttime.ru_utime.tv_usec
614                - nulltime.tv_usec) * 1e-6;
615        printf("Dhrystone(%s) time for %ld passes = %.1f\n",
616           Version,
617           (long)LOOPS,
618           t);
619        printf("This machine benchmarks at %.0f dhrystones/second\n",
620           (double)LOOPS / t);
621    }
622#endif
623
624}
625
626Proc1 : call=500000
P
roc1(PtrParIn)
627REG RecordPtr    PtrParIn;
628{
629#define    NextRecord    (* dereference : enter=5000000, leave=5000000
*
(PtrParIn : dhrystone.c line=627 column=15
P
trParIn-> : enter=5000000, leave=5000000
-
>PtrComp : dhrystone.c line=438 column=18
P
trComp))
630
631    structassign(NextRecord, * dereference : enter=1000000, leave=1000000
*
PtrGlb : dhrystone.c line=485 column=11
P
trGlb);
632    PtrParIn : dhrystone.c line=627 column=15
P
trParIn-> : enter=500000, leave=500000
-
>IntComp : dhrystone.c line=441 column=14
I
ntComp = : enter=500000, leave=500000
=
 5;
633    NextRecord.IntComp : dhrystone.c line=441 column=14
I
ntComp = : pass=500000
=
 PtrParIn : dhrystone.c line=627 column=15
P
trParIn-> : enter=500000, leave=500000
-
>IntComp : dhrystone.c line=441 column=14
I
ntComp;
634    NextRecord.PtrComp : dhrystone.c line=438 column=18
P
trComp = : pass=500000
=
 PtrParIn : dhrystone.c line=627 column=15
P
trParIn-> : enter=500000, leave=500000
-
>PtrComp : dhrystone.c line=438 column=18
P
trComp;
635    function : enter=500000, leave=500000
P
roc3(NextRecord.PtrComp : dhrystone.c line=438 column=18
P
trComp);
636    if : true=500000, false=0
i
f (NextRecord.Discr : dhrystone.c line=439 column=15
D
iscr == : true=500000, false=0
=
Ident1 : dhrystone.c line=426 column=15
I
dent1)
637    {
638        NextRecord.IntComp : dhrystone.c line=441 column=14
I
ntComp = : pass=500000
=
 6;
639        function : enter=500000, leave=500000
P
roc6(PtrParIn : dhrystone.c line=627 column=15
P
trParIn-> : enter=500000, leave=500000
-
>EnumComp : dhrystone.c line=440 column=15
E
numComp, &NextRecord.EnumComp : dhrystone.c line=440 column=15
E
numComp);
640        NextRecord.PtrComp : dhrystone.c line=438 column=18
P
trComp = : pass=500000
=
 PtrGlb : dhrystone.c line=485 column=11
P
trGlb-> : enter=500000, leave=500000
-
>PtrComp : dhrystone.c line=438 column=18
P
trComp;
641        function : enter=500000, leave=500000
P
roc7(NextRecord.IntComp : dhrystone.c line=441 column=14
I
ntComp, 10, &NextRecord.IntComp : dhrystone.c line=441 column=14
I
ntComp);
642    }
643    else
644        structassign(*PtrParIn : dhrystone.c line=627 column=15
P
trParIn, NextRecord);
645
646#undef    NextRecord
647}
648
649Proc2 : call=500000
P
roc2(IntParIO)
650OneToFifty    *IntParIO;
651{
652    REG OneToFifty        IntLoc;
653    REG Enumeration        EnumLoc;
654
655    IntLoc : dhrystone.c line=652 column=18
I
ntLoc = : pass=500000
=
 * dereference : enter=500000, leave=500000
*
IntParIO : dhrystone.c line=650 column=13
I
ntParIO + : pass=500000
+
 10;
656    for(;;)
657    {
658        if : true=500000, false=0
i
f (Char1Glob : dhrystone.c line=481 column=7
C
har1Glob == : true=500000, false=0
=
= 'A')
659        {
660            -- : pass=500000
-
-IntLoc : dhrystone.c line=652 column=18
I
ntLoc;
661            *IntParIO : dhrystone.c line=650 column=13
I
ntParIO = : enter=500000, leave=500000
=
 IntLoc : dhrystone.c line=652 column=18
I
ntLoc - : pass=500000
-
 IntGlob : dhrystone.c line=479 column=6
I
ntGlob;
662            EnumLoc : dhrystone.c line=653 column=19
E
numLoc = : pass=500000
=
 Ident1 : dhrystone.c line=426 column=15
I
dent1;
663        }
664        if : true=500000, false=0
i
f (EnumLoc : dhrystone.c line=653 column=19
E
numLoc == : true=500000, false=0
=
Ident1 : dhrystone.c line=426 column=15
I
dent1)
665            break : pass=500000
b
reak;
666    }
667}
668
669Proc3 : call=500000
P
roc3(PtrParOut)
670RecordPtr    *PtrParOut;
671{
672    if : true=500000, false=0
i
f (PtrGlb : dhrystone.c line=485 column=11
P
trGlb != : true=500000, false=0
!
= NULL)
673        *PtrParOut : dhrystone.c line=670 column=12
P
trParOut = : enter=500000, leave=500000
=
 PtrGlb : dhrystone.c line=485 column=11
P
trGlb-> : enter=500000, leave=500000
-
>PtrComp : dhrystone.c line=438 column=18
P
trComp;
674    else
675        IntGlob : dhrystone.c line=479 column=6
I
ntGlob = : pass=0
=
 100;
676    function : enter=500000, leave=500000
P
roc7(10, IntGlob : dhrystone.c line=479 column=6
I
ntGlob, &PtrGlb : dhrystone.c line=485 column=11
P
trGlb-> : enter=500000, leave=500000
-
>IntComp : dhrystone.c line=441 column=14
I
ntComp);
677}
678
679Proc4 : call=500000
P
roc4()
680{
681    REG boolean    BoolLoc;
682
683    BoolLoc : dhrystone.c line=681 column=14
B
oolLoc = : pass=500000
=
 Char1Glob : dhrystone.c line=481 column=7
C
har1Glob == : true=500000, false=0
=
= 'A';
684    BoolLoc : dhrystone.c line=681 column=14
B
oolLoc |= : pass=500000
|
BoolGlob : dhrystone.c line=480 column=10
B
oolGlob;
685    Char2Glob : dhrystone.c line=482 column=7
C
har2Glob = : pass=500000
=
 'B';
686}
687
688Proc5 : call=500000
P
roc5()
689{
690    Char1Glob : dhrystone.c line=481 column=7
C
har1Glob = : pass=500000
=
 'A';
691    BoolGlob : dhrystone.c line=480 column=10
B
oolGlob = : pass=500000
=
 FALSE;
692}
693
694extern boolean Func3();
695
696Proc6 : call=500000
P
roc6(EnumParIn, EnumParOut)
697REG Enumeration    EnumParIn;
698REG Enumeration    *EnumParOut;
699{
700    *EnumParOut : dhrystone.c line=698 column=18
E
numParOut = : enter=500000, leave=500000
=
 EnumParIn : dhrystone.c line=697 column=17
E
numParIn;
701    if : true=0, false=500000
i
f (! : true=0, false=500000
!
 Func3 : enter=500000, leave=500000

Func3 : dhrystone.c line=694 column=16
F
unc3(EnumParIn : dhrystone.c line=697 column=17
E
numParIn) )
702        *EnumParOut : dhrystone.c line=698 column=18
E
numParOut = : enter=0, leave=0
=
 Ident4 : dhrystone.c line=426 column=39
I
dent4;
703    switch : pass=500000
s
witch (EnumParIn : dhrystone.c line=697 column=17
E
numParIn)
704    {
705    case : true=0, false=500000
c
ase Ident1:    *EnumParOut : dhrystone.c line=698 column=18
E
numParOut = : enter=0, leave=0
=
 Ident1 : dhrystone.c line=426 column=15
I
dent1; break : pass=0
b
reak;
706    case : true=0, false=500000
c
ase Ident2:    if : true=0, false=0
i
f (IntGlob : dhrystone.c line=479 column=6
I
ntGlob > : true=0, false=0
>
 100) *EnumParOut : dhrystone.c line=698 column=18
E
numParOut = : enter=0, leave=0
=
 Ident1 : dhrystone.c line=426 column=15
I
dent1;
707            else *EnumParOut : dhrystone.c line=698 column=18
E
numParOut = : enter=0, leave=0
=
 Ident4 : dhrystone.c line=426 column=39
I
dent4;
708            break : pass=0
b
reak;
709    case : true=500000, false=0
c
ase Ident3:    *EnumParOut : dhrystone.c line=698 column=18
E
numParOut = : enter=500000, leave=500000
=
 Ident2 : dhrystone.c line=426 column=23
I
dent2; break : pass=500000
b
reak;
710    case : true=0, false=500000
c
ase Ident4:    break : pass=0
b
reak;
711    case : true=0, false=500000
c
ase Ident5:    *EnumParOut : dhrystone.c line=698 column=18
E
numParOut = : enter=0, leave=0
=
 Ident3 : dhrystone.c line=426 column=31
I
dent3;
712    }
713}
714
715Proc7 : call=1500000
P
roc7(IntParI1, IntParI2, IntParOut)
716OneToFifty    IntParI1;
717OneToFifty    IntParI2;
718OneToFifty    *IntParOut;
719{
720    REG OneToFifty    IntLoc;
721
722    IntLoc : dhrystone.c line=720 column=17
I
ntLoc = : pass=1500000
=
 IntParI1 : dhrystone.c line=716 column=12
I
ntParI1 + : pass=1500000
+
 2;
723    *IntParOut : dhrystone.c line=718 column=13
I
ntParOut = : enter=1500000, leave=1500000
=
 IntParI2 : dhrystone.c line=717 column=12
I
ntParI2 + : pass=1500000
+
 IntLoc : dhrystone.c line=720 column=17
I
ntLoc;
724}
725
726Proc8 : call=500000
P
roc8(Array1Par, Array2Par, IntParI1, IntParI2)
727Array1Dim    Array1Par;
728Array2Dim    Array2Par;
729OneToFifty    IntParI1;
730OneToFifty    IntParI2;
731{
732    REG OneToFifty    IntLoc;
733    REG OneToFifty    IntIndex;
734
735    IntLoc : dhrystone.c line=732 column=17
I
ntLoc = : pass=500000
=
 IntParI1 : dhrystone.c line=729 column=12
I
ntParI1 + : pass=500000
+
 5;
736    Array1Par : dhrystone.c line=727 column=11
A
rray1Par[IntLoc : dhrystone.c line=732 column=17
I
ntLoc] = : enter=500000, leave=500000
=
 IntParI2 : dhrystone.c line=730 column=12
I
ntParI2;
737    Array1Par : dhrystone.c line=727 column=11
A
rray1Par[IntLoc : dhrystone.c line=732 column=17
I
ntLoc+ : pass=500000
+
1] = : enter=500000, leave=500000
=
 Array1Par : dhrystone.c line=727 column=11
A
rray1Par[] : enter=500000, leave=500000
[
IntLoc : dhrystone.c line=732 column=17
I
ntLoc];
738    Array1Par : dhrystone.c line=727 column=11
A
rray1Par[IntLoc : dhrystone.c line=732 column=17
I
ntLoc+ : pass=500000
+
30] = : enter=500000, leave=500000
=
 IntLoc : dhrystone.c line=732 column=17
I
ntLoc;
739    for : true=1000000, false=500000
f
or (IntIndex : dhrystone.c line=733 column=17
I
ntIndex = : pass=500000
=
 IntLoc : dhrystone.c line=732 column=17
I
ntLoc; IntIndex : dhrystone.c line=733 column=17
I
ntIndex <= : true=1000000, false=500000
<
= (IntLoc : dhrystone.c line=732 column=17
I
ntLoc+ : pass=1500000
+
1); ++ : pass=1000000
+
+IntIndex : dhrystone.c line=733 column=17
I
ntIndex)
740        Array2Par : dhrystone.c line=728 column=11
A
rray2Par[] : enter=1000000, leave=1000000
[
IntLoc : dhrystone.c line=732 column=17
I
ntLoc][IntIndex : dhrystone.c line=733 column=17
I
ntIndex] = : enter=1000000, leave=1000000
=
 IntLoc : dhrystone.c line=732 column=17
I
ntLoc;
741    ++ : pass=500000
+
+Array2Par : dhrystone.c line=728 column=11
A
rray2Par[] : enter=500000, leave=500000
[
IntLoc : dhrystone.c line=732 column=17
I
ntLoc][] : enter=500000, leave=500000
[
IntLoc : dhrystone.c line=732 column=17
I
ntLoc- : pass=500000
-
1];
742    Array2Par : dhrystone.c line=728 column=11
A
rray2Par[] : enter=500000, leave=500000
[
IntLoc : dhrystone.c line=732 column=17
I
ntLoc+ : pass=500000
+
20][IntLoc : dhrystone.c line=732 column=17
I
ntLoc] = : enter=500000, leave=500000
=
 Array1Par : dhrystone.c line=727 column=11
A
rray1Par[] : enter=500000, leave=500000
[
IntLoc : dhrystone.c line=732 column=17
I
ntLoc];
743    IntGlob : dhrystone.c line=479 column=6
I
ntGlob = : pass=500000
=
 5;
744}
745
746Enumeration Func1 : call=1500000
F
unc1(CharPar1, CharPar2)
747CapitalLetter    CharPar1;
748CapitalLetter    CharPar2;
749{
750    REG CapitalLetter    CharLoc1;
751    REG CapitalLetter    CharLoc2;
752
753    CharLoc1 : dhrystone.c line=750 column=20
C
harLoc1 = : pass=1500000
=
 CharPar1 : dhrystone.c line=747 column=15
C
harPar1;
754    CharLoc2 : dhrystone.c line=751 column=20
C
harLoc2 = : pass=1500000
=
 CharLoc1 : dhrystone.c line=750 column=20
C
harLoc1;
755    if : true=1500000, false=0
i
f (CharLoc2 : dhrystone.c line=751 column=20
C
harLoc2 != : true=1500000, false=0
!
CharPar2 : dhrystone.c line=748 column=15
C
harPar2)
756        return : pass=1500000
r
eturn (Ident1 : dhrystone.c line=426 column=15
I
dent1);
757    else
758        return : pass=0
r
eturn (Ident2 : dhrystone.c line=426 column=23
I
dent2);
759}
760
761boolean Func2 : call=500000
F
unc2(StrParI1, StrParI2)
762String30    StrParI1;
763String30    StrParI2;
764{
765    REG OneToThirty        IntLoc;
766    REG CapitalLetter    CharLoc;
767
768    IntLoc : dhrystone.c line=765 column=19
I
ntLoc = : pass=500000
=
 1;
769    while : true=500000, false=500000
w
hile (IntLoc : dhrystone.c line=765 column=19
I
ntLoc <= : true=500000, false=500000
<
= 1)
770        if : true=500000, false=0
i
f (Func1 : enter=500000, leave=500000

Func1 : dhrystone.c line=746 column=13
F
unc1(StrParI1 : dhrystone.c line=762 column=10
S
trParI1[] : enter=500000, leave=500000
[
IntLoc : dhrystone.c line=765 column=19
I
ntLoc], StrParI2 : dhrystone.c line=763 column=10
S
trParI2[] : enter=500000, leave=500000
[
IntLoc : dhrystone.c line=765 column=19
I
ntLoc+ : pass=500000
+
1]) == : true=500000, false=0
=
Ident1 : dhrystone.c line=426 column=15
I
dent1)
771        {
772            CharLoc : dhrystone.c line=766 column=20
C
harLoc = : pass=500000
=
 'A';
773            ++ : pass=500000
+
+IntLoc : dhrystone.c line=765 column=19
I
ntLoc;
774        }
775    if : true=0, false=500000
i
f (CharLoc : dhrystone.c line=766 column=20
C
harLoc >= : true=0, false=500000
MC/DC independently affect : true=0, false=500000
>TF
= 'W' && : true=0, false=500000
&
CharLoc : dhrystone.c line=766 column=20
C
harLoc <= : true=0, false=0
MC/DC independently affect : true=0, false=0
<TF
= 'Z')
776        IntLoc : dhrystone.c line=765 column=19
I
ntLoc = : pass=0
=
 7;
777    if : true=0, false=500000
i
f (CharLoc : dhrystone.c line=766 column=20
C
harLoc == : true=0, false=500000
=
= 'X')
778        return : pass=0
r
eturn(TRUE);
779    else
780    {
781        if : true=0, false=500000
i
f (function : enter=500000, leave=500000
s
trcmp(StrParI1 : dhrystone.c line=762 column=10
S
trParI1, StrParI2 : dhrystone.c line=763 column=10
S
trParI2) > : true=0, false=500000
>
 0)
782        {
783            IntLoc : dhrystone.c line=765 column=19
I
ntLoc += : pass=0
+
= 7;
784            return : pass=0
r
eturn (TRUE);
785        }
786        else
787            return : pass=500000
r
eturn (FALSE);
788    }
789}
790
791boolean Func3 : call=500000
F
unc3(EnumParIn)
792REG Enumeration    EnumParIn;
793{
794    REG Enumeration    EnumLoc;
795
796    EnumLoc : dhrystone.c line=794 column=18
E
numLoc = : pass=500000
=
 EnumParIn : dhrystone.c line=792 column=17
E
numParIn;
797    if : true=500000, false=0
i
f (EnumLoc : dhrystone.c line=794 column=18
E
numLoc == : true=500000, false=0
=
Ident3 : dhrystone.c line=426 column=31
I
dent3) return : pass=500000
r
eturn (TRUE);
798    return : pass=0
r
eturn (FALSE);
799}
800
801#ifdef    NOSTRUCTASSIGN
802memcpy(d, s, l)
803register char    *d;
804register char    *s;
805register int    l;
806{
807    while (l--) *d++ = *s++;
808}
809#endif
810/* ---------- */
811[EOF]


Generated by expcov