Skip to content

Commit 3fc2781

Browse files
altframes are a deadend
1 parent 79ca90c commit 3fc2781

File tree

2 files changed

+12
-57
lines changed

2 files changed

+12
-57
lines changed

PRODUCTION/codegen-strict.lm

+2-14
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,6 @@ compile-expr-strict := λctx e offset used . (tail(
6969
\o \s 'unlet \s lname \s '= \s (quote-s rhs) \s ': \s (quote-s(typecheck-lookup rhs)) \n
7070
(expr::get-unframe e1) \t 'add \s '$ sz , \s '%rsp \n
7171
))))
72-
(set e1 (expr::set-altframe( e1 (
73-
\o \s 'altlet \s lname \s '= \s (quote-s rhs) \s ': \s (quote-s(typecheck-lookup rhs)) \n
74-
\t 'sub \s '$ sz , \s '%rsp \n
75-
))))
7672
))
7773
(set ctx (context::bind( (expr::get-context e1) lname
7874
(typecheck-ascript( (LocalVariable offset) (typecheck-lookup rhs) ))
@@ -185,25 +181,18 @@ compile-expr-strict := λctx e offset used . (tail(
185181
(set e4 (expr::set-prog( e4 (
186182
(expr::get-prog e1)
187183
\t (expr::get-expr e1) \s label-true-branch \n
188-
(expr::get-altframe e1)
189-
(expr::get-frame e2)
190-
(expr::get-altframe e2)
191184
(expr::get-frame e3)
192185
(expr::get-prog e3)
186+
(expr::get-unframe e3)
193187
\t 'jmp \s label-end \n
194188
label-true-branch ': \n
195189
(expr::get-frame e2)
196190
(expr::get-prog e2)
197-
(expr::get-frame e3)
198-
(expr::get-altframe e3)
191+
(expr::get-unframe e2)
199192
label-end ': \n
200193
))))
201194
(set e4 (expr::set-context( e4 (expr::get-context e3) )))
202195
(set e4 (expr::set-offset( e4 (expr::get-offset e3) )))
203-
(set e4 (expr::set-unframe( e4 (
204-
(expr::get-unframe e1) (expr::get-unframe e2) (expr::get-unframe e3)
205-
))))
206-
(set e4 (expr::set-altframe( e4 () )))
207196
e4
208197
)))
209198
( (App( (Variable 'label) (Variable label-name) )) (
@@ -308,7 +297,6 @@ compile-expr-strict := λctx e offset used . (tail(
308297
(set e2 (expr::set-text( e2 ( (expr::get-text e1) (expr::get-text e2) ))))
309298
(set e2 (expr::set-data( e2 ( (expr::get-data e1) (expr::get-data e2) ))))
310299
(set e2 (expr::set-prog( e2 ( (expr::get-prog e1) (expr::get-prog e2) ))))
311-
(set e2 (expr::set-altframe( e2 ( (expr::get-altframe e1) (expr::get-altframe e2) ))))
312300
e2
313301
)))
314302
( (App ((Variable 'gensym-label) (Variable arg))) (tail(

PRODUCTION/expression.lm

+10-43
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,48 @@
11

2-
expr::new := λ . (StrictExpr(() () () () () () () () 0 ()));
2+
expr::new := λ . (StrictExpr(() () () () () () () () 0));
33
expr::get-type := λe . (match e (
44
()
55
((Expr(f p u t d pc off)) ())
6-
((StrictExpr(tt f u t d p e c o a)) tt)
6+
((StrictExpr(tt f u t d p e c o)) tt)
77
));
88
expr::get-frame := λe . (match e (
99
()
1010
((Expr(f p u t d pc off)) f)
11-
((StrictExpr(tt f u t d p e c o a)) f)
11+
((StrictExpr(tt f u t d p e c o)) f)
1212
));
1313
expr::get-unframe := λe . (match e (
1414
()
1515
((Expr(f p u t d pc off)) u)
16-
((StrictExpr(tt f u t d p e c o a)) u)
16+
((StrictExpr(tt f u t d p e c o)) u)
1717
));
1818
expr::get-text := λe . (match e (
1919
()
2020
((Expr(f p u t d pc off)) t)
21-
((StrictExpr(tt f u t d p e c o a)) t)
21+
((StrictExpr(tt f u t d p e c o)) t)
2222
));
2323
expr::get-data := λe . (match e (
2424
()
2525
((Expr(f p u t d pc off)) d)
26-
((StrictExpr(tt f u t d p e c o a)) d)
26+
((StrictExpr(tt f u t d p e c o)) d)
2727
));
2828
expr::get-prog := λe . (match e (
2929
()
3030
((Expr(f p u t d pc off)) p)
31-
((StrictExpr(tt f u t d p e c o a)) p)
31+
((StrictExpr(tt f u t d p e c o)) p)
3232
));
3333
expr::get-expr := λe . (match e (
3434
()
35-
((StrictExpr(tt f u t d p x c o a)) x)
35+
((StrictExpr(tt f u t d p x c o)) x)
3636
));
3737
expr::get-context := λe . (match e (
3838
()
3939
((Expr(f p u t d pc off)) pc)
40-
((StrictExpr(tt f u t d p e c o a)) c)
40+
((StrictExpr(tt f u t d p e c o)) c)
4141
));
4242
expr::get-offset := λe . (match e (
4343
()
4444
((Expr(f p u t d pc off)) off )
45-
((StrictExpr(tt f u t d p e c o a)) o )
46-
));
47-
expr::get-altframe := λe . (match e (
48-
()
49-
((StrictExpr(tt f u t d p e c o a)) a )
45+
((StrictExpr(tt f u t d p e c o)) o )
5046
));
5147
expr::set-frame := λe x . (
5248
(StrictExpr(
@@ -59,7 +55,6 @@ expr::set-frame := λe x . (
5955
(expr::get-expr e)
6056
(expr::get-context e)
6157
(expr::get-offset e)
62-
(expr::get-altframe e)
6358
))
6459
);
6560
expr::set-unframe := λe x . (
@@ -73,7 +68,6 @@ expr::set-unframe := λe x . (
7368
(expr::get-expr e)
7469
(expr::get-context e)
7570
(expr::get-offset e)
76-
(expr::get-altframe e)
7771
))
7872
);
7973
expr::set-text := λe x . (
@@ -87,7 +81,6 @@ expr::set-text := λe x . (
8781
(expr::get-expr e)
8882
(expr::get-context e)
8983
(expr::get-offset e)
90-
(expr::get-altframe e)
9184
))
9285
);
9386
expr::set-data := λe x . (
@@ -101,7 +94,6 @@ expr::set-data := λe x . (
10194
(expr::get-expr e)
10295
(expr::get-context e)
10396
(expr::get-offset e)
104-
(expr::get-altframe e)
10597
))
10698
);
10799
expr::set-prog := λe x . (
@@ -115,7 +107,6 @@ expr::set-prog := λe x . (
115107
(expr::get-expr e)
116108
(expr::get-context e)
117109
(expr::get-offset e)
118-
(expr::get-altframe e)
119110
))
120111
);
121112
expr::set-expr := λe x . (
@@ -129,7 +120,6 @@ expr::set-expr := λe x . (
129120
x
130121
(expr::get-context e)
131122
(expr::get-offset e)
132-
(expr::get-altframe e)
133123
))
134124
);
135125
expr::set-context := λe x . (
@@ -143,7 +133,6 @@ expr::set-context := λe x . (
143133
(expr::get-expr e)
144134
x
145135
(expr::get-offset e)
146-
(expr::get-altframe e)
147136
))
148137
);
149138
expr::set-offset := λe x . (
@@ -157,7 +146,6 @@ expr::set-offset := λe x . (
157146
(expr::get-expr e)
158147
(expr::get-context e)
159148
x
160-
(expr::get-altframe e)
161149
))
162150
);
163151
expr::set-type := λe x . (
@@ -171,21 +159,6 @@ expr::set-type := λe x . (
171159
(expr::get-expr e)
172160
(expr::get-context e)
173161
(expr::get-offset e)
174-
(expr::get-altframe e)
175-
))
176-
);
177-
expr::set-altframe := λe x . (
178-
(StrictExpr(
179-
(expr::get-type e)
180-
(expr::get-frame e)
181-
(expr::get-unframe e)
182-
(expr::get-text e)
183-
(expr::get-data e)
184-
(expr::get-prog e)
185-
(expr::get-expr e)
186-
(expr::get-context e)
187-
(expr::get-offset e)
188-
x
189162
))
190163
);
191164

@@ -211,12 +184,6 @@ expr::chain := λ e1 e2 . (tail(
211184
(set e1 (expr::set-unframe(
212185
e1 ( (expr::get-unframe e1) (expr::get-unframe e2) )
213186
)))
214-
(set e1 (expr::set-altframe( e1 (match ((expr::get-altframe e1) (expr::get-altframe e2)) (
215-
()
216-
( (() r) r )
217-
( (l ()) l )
218-
( (l r) (l r) )
219-
)))))
220187
(set e1 (expr::set-offset( e1 (expr::get-offset e2) )))
221188
(set e1 (expr::set-context( e1 (expr::get-context e2) )))
222189
e1

0 commit comments

Comments
 (0)