[gforth] / gforth / peeprules.vmg  

gforth: gforth/peeprules.vmg


1 : anton 1.8 \ taken from David Gregg's EuroForth 2001 paper; omitted some sequences
2 : anton 1.12 \ eliminated for gforth-native:
3 :     \ 1) sequences containing call
4 :     \ 2) sequences with immediate arguments not in the first position
5 : anton 1.7 super1 = lit +
6 : anton 1.12 \ super2 = lit call
7 : anton 1.7 super3 = lit @
8 : anton 1.12 \ super4 = lit @ call
9 :     \ super5 = @ call
10 : anton 1.8 super6 = lit !
11 : anton 1.12 \ super7 = lit lit
12 :     \ super8 = dup lit
13 :     \ super9 = ! lit
14 :     \ super10 = lit ! lit
15 : anton 1.8 super11 = ! ;s
16 :     super12 = lit + @
17 : anton 1.12 \ super13 = 0= ?branch
18 :     \ super14 = dup call
19 : anton 1.8 super15 = useraddr @
20 :     super16 = + @
21 : anton 1.12 \ super17 = lit @ ?branch
22 : anton 1.8 super18 = lit ! ;s
23 :     super19 = lit @ and
24 :     super20 = = ?branch
25 : anton 1.12 \ super21 = lit lit !
26 :     \ super22 = @ ?branch
27 : anton 1.8 super23 = useraddr !
28 : anton 1.12 \ super24 = dup ?branch
29 : anton 1.8 super25 = @ ;s
30 :     super26 = lit @ +
31 :     super27 = dup @
32 : anton 1.9
33 : anton 1.11 \F 0 [if]
34 : anton 1.9
35 : anton 1.10 \ \ \E prim-states ;s \ 2950159
36 :     \ \E prim-states lit \ 2802835
37 :     \ \ \E prim-states call \ 2558373
38 :     \ \E prim-states @ \ 2244351
39 :     \ \E branch-states ?branch \ 1134432
40 :     \ \E prim-states lit@ \ 1051813
41 :     \ \E prim-states swap \ 737988
42 : anton 1.11 \ \ \E S0 S2 state-prim swap
43 :     \ \ \E S1 S2 state-prim swap
44 :     \ \ \E S2 S3 state-prim swap
45 :     \ \ \E S3 S2 state-prim swap
46 : anton 1.10 \ \E prim-states c@ \ 651406
47 :     \ \E prim-states = \ 590006
48 :     \ \E prim-states 0= \ 584487
49 :     \ \E prim-states dup \ 566855
50 :     \ \E S0 S1 state-prim dup
51 :     \ \E prim-states + \ 566003
52 :     \ \E prim-states i \ 502908
53 :     \ \E prim-states +! \ 448925
54 :     \ \ \E prim-states branch \ 409561
55 :     \ \ \E prim-states (loop) \ 379646
56 :     \ \ \E prim-states lp! \ 326743
57 :     \ \E prim-states and \ 309427
58 :     \ \E prim-states useraddr \ 303254
59 :     \ \E prim-states over \ 283556
60 :     \ \E S0 S1 state-prim over
61 : anton 1.11 \ \ \E S1 S2 state-prim over
62 :     \ \ \E S2 S1 state-prim over
63 :     \ \ \E S3 S2 state-prim over
64 : anton 1.10 \ \E prim-states negate \ 257417
65 :     \ \E prim-states cells \ 254644
66 :     \ \E prim-states rot \ 220273
67 : anton 1.11 \ \ \E S3 S1 state-prim rot
68 :     \ \ \E S2 S3 state-prim rot
69 :     \ \ \E S1 S3 state-prim rot
70 :     \ \ \E S0 S3 state-prim rot
71 : anton 1.10 \ \E prim-states ! \ 218672
72 :     \ \E prim-states 2dup \ 211315
73 : anton 1.11 \ \E S0 S1 state-prim 2dup
74 :     \ \ \E S0 S2 state-prim 2dup
75 :     \ \ \E S1 S3 state-prim 2dup
76 :     \ \ \E S2 S2 state-prim 2dup
77 :     \ \ \E S3 S1 state-prim 2dup
78 : anton 1.10 \ \ \E branch-states lit-perform \ 188331
79 :     \ \E prim-states <> \ 179502
80 :     \ \E prim-states c! \ 179332
81 :     \ \E prim-states lit+ \ 179156
82 :     \ \E prim-states drop \ 173995
83 :     \ \E S0 S0 state-prim drop
84 :     \ \E prim-states lshift \ 164671
85 :     \ \E prim-states /mod \ 164670
86 :     \ \E prim-states >r \ 145247
87 :     \ \E prim-states r> \ 133792
88 :     \ \ \E branch-states does-exec \ 120944
89 :     \ \E prim-states cell+ \ 116183
90 :     \ \E prim-states lp+!# \ 106697 \ --
91 :     \ \E prim-states - \ 106245
92 :     \ \E prim-states unloop \ 98938 \ --
93 :     \ \E prim-states lp+ \ 87190 \ --
94 :     \ \E prim-states >= \ 80994
95 :     \ \E prim-states tuck \ 78696
96 : anton 1.11 \ \ \E S2 S2 state-prim tuck
97 : anton 1.10 \ \E prim-states /string \ 78595
98 :     \ \E prim-states char+ \ 77542
99 :     \ \ \E prim-states ?dup \ 76850
100 :     \ \E prim-states @local0 \ 75322
101 :     \ \E prim-states min \ 75264
102 :     \ \ \E prim-states compare \ 65603
103 :     \ \E branch-states (u+do) \ 63823
104 :     \ \ \E prim-states (read-line) \ 63823
105 :     \ \E prim-states 2>r \ 62646
106 :     \ \E prim-states 2r> \ 62644
107 :     \ \E prim-states 2r@ \ 61338
108 :     \ \E prim-states 2@ \ 61067
109 :     \ \E prim-states nip \ 54961
110 :     \ \E S1 S1 state-prim nip
111 :     \ \E S0 S1 state-prim nip
112 :     \ \E prim-states within \ 51075
113 :     \ \E prim-states 1- \ 47441
114 :     \ \E branch-states execute \ 46674
115 :     \ \E prim-states lp- \ 45385
116 :     \ \E branch-states perform \ 38756
117 :     \ \E prim-states xor \ 35599
118 :     \ \E prim-states @local# \ 34586
119 :     \ \ \E prim-states pick \ 32015
120 :     \ \E prim-states u> \ 29373
121 :     \ \E prim-states -rot \ 26211
122 : anton 1.11 \ \ \E S3 S2 state-prim -rot
123 :     \ \ \E S1 S3 state-prim -rot
124 : anton 1.10 \ \E prim-states 2drop \ 25418
125 :     \ \E S0 S0 state-prim 2drop
126 :     \ \E S1 S0 state-prim 2drop
127 :     \ \ \E prim-states (tablelfind) \ 22243
128 :     \ \E prim-states or \ 21587
129 :     \ \E prim-states @local2 \ 20859
130 :     \ \E branch-states (+loop) \ 20006
131 :     \ \E prim-states 1+ \ 17944
132 :     \ \E prim-states rdrop \ 17902
133 :     \ \E branch-states (?do) \ 17348
134 :     \ \E prim-states max \ 16948
135 :     \ \E prim-states 2* \ 15606
136 :     \ \ \E prim-states filename-match \ 15003
137 :     \ \ \E prim-states (listlfind) \ 13074
138 :     \ \ \E prim-states sp@ \ 12741
139 :     \ \ \E prim-states fp@ \ 12384
140 :     \ \ \E prim-states um/mod \ 12288
141 :     \ \E prim-states 2! \ 11904
142 :     \ \ \E prim-states fill \ 10781
143 :     \ \ \E prim-states (parse-white) \ 10624
144 :     \ \E branch-states (do) \ 10516
145 :     \ \ \E prim-states (hashkey1) \ 10239
146 :     \ \E prim-states u< \ 9602
147 :     \ \ \E prim-states write-file \ 8973
148 :     \ \E prim-states count \ 8873
149 :     \ \ \E prim-states rp@ \ 8410
150 :     \ \E prim-states 0< \ 8380
151 :     \ \E prim-states < \ 7741
152 :     \ \E prim-states @local1 \ 7458
153 :     \ \ \E prim-states move \ 7050
154 :     \ \E prim-states u>= \ 6138
155 :     \ \E branch-states (+do) \ 5863
156 :     \ \ \E prim-states va-return-double \ 5517
157 :     \ \E prim-states um* \ 5342
158 :     \ \E prim-states toupper \ 3517
159 :     \ \ \E prim-states f@local1 \ 2907
160 :     \ \ \E prim-states rp! \ 2859
161 :     \ \ \E prim-states ?dup-?branch \ 2829
162 :     \ \E prim-states d+ \ 2671
163 :     \ \ \E prim-states ftuck \ 2636
164 :     \ \ \E prim-states read-file \ 2623
165 :     \ \ \E prim-states ms \ 2454
166 :     \ \ \E prim-states (s+loop) \ 2429
167 :     \ \ \E prim-states allocate \ 1869
168 :     \ \E prim-states * \ 1520
169 :     \ \E prim-states 0<> \ 925
170 :     \ \ \E prim-states noop \ 715
171 :     \ \E prim-states aligned \ 714
172 :     \ \E prim-states u<= \ 684
173 :     \ \E prim-states i' \ 684
174 :     \ \E prim-states > \ 411
175 :     \ \ \E prim-states (hashlfind) \ 397
176 :     \ \E prim-states 2swap \ 336
177 : anton 1.11 \ \ \E S0 S3 state-prim 2swap
178 :     \ \ \E S1 S3 state-prim 2swap
179 : anton 1.10 \ \E prim-states laddr# \ 335
180 :     \ \ \E prim-states faxpy \ 286
181 :     \ \ \E prim-states (next) \ 272
182 :     \ \ \E prim-states (-loop)-lp+!# \ 248
183 :     \ \E prim-states <= \ 199
184 :     \ \E prim-states invert \ 170
185 :     \ \E branch-states (-do) \ 169
186 :     \ \E prim-states 2over \ 165
187 : anton 1.11 \ \ \E S0 S2 state-prim 2over
188 :     \ \ \E S1 S3 state-prim 2over
189 : anton 1.10 \ \E prim-states under+ \ 154
190 :     \ \E prim-states dnegate \ 128
191 :     \ \E prim-states u<> \ 128
192 :     \ \E prim-states 0> \ 122
193 :     \ \ \E prim-states (loop)-lp+!# \ 118
194 :     \ \E prim-states j \ 117
195 :     \ \E prim-states float+ \ 78
196 :     \ \ \E prim-states (for) \ 68
197 :     \ \E prim-states 2rdrop \ 60 \ --
198 :     \ \ \E prim-states f! \ 14
199 :     \ \E prim-states >l \ 14
200 :     \ \ \E prim-states close-file \ 5
201 :     \ \ \E prim-states call-c \ 4
202 :     \ \ \E prim-states reposition-file \ 3
203 :     \ \E prim-states / \ 3
204 :     \ \ \E prim-states resize-file \ 2
205 :     \ \ \E prim-states free \ 2
206 :     \ \E prim-states 2/ \ 2
207 :     \ \ \E prim-states up! \ 1
208 :     \ \ \E prim-states stdin \ 1
209 :     \ \ \E prim-states key?-file \ 1
210 :     \ \ \E prim-states flush-icache \ 1
211 :     \ \ \E prim-states cmove \ 1
212 :     \ \ \E prim-states (system) \ 1
213 : anton 1.9
214 : anton 1.10 \ \E ' noop is output-nextp0
215 :     \ \E ' noop is output-nextp1
216 : anton 1.9
217 : anton 1.10 \ \E gen-transitions noop
218 : anton 1.9
219 : anton 1.11 \F [ENDIF]

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help