Skip to content

Commit 7293a34

Browse files
committed
another 5%
1 parent 3a48ff7 commit 7293a34

2 files changed

Lines changed: 11 additions & 11 deletions

File tree

Makefile

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,8 @@ LSTSFLAGS = MALLOC_CHECK_=3
77
# recursion is used fairly heavily
88
# recommendation: ulimit -s unlimited
99

10-
dev: install-bootstrap
11-
lm --v23 SRC/index.lsts
12-
#lm --v23 --showallocgen tests/promises/lm-typecheck/tc-misc-2.lsts
13-
gcc tmp.c
14-
./a.out --v23 SRC/index.lsts
10+
dev: install-production
11+
lm --v23 --showalloc SRC/index.lsts
1512

1613
build: compile-production
1714
time env $(LSTSFLAGS) ./production --v23 --c -o deploy1.c SRC/index.lsts

SRC/tctx-lookup.lsts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@ let .lookup(tctx: TypeContext?, key: CString): TypeContextRow = tctx.get-or(mk-t
33
let .lookup(trs: List<TypeContextRow>, key: CString): TypeContextRow = (
44
let default = NullTypeContextRow;
55
let continue = true;
6-
for list tr in trs { if continue {
6+
while non-zero(trs) and continue {
7+
let tr = head(trs); trs = tail(trs);
78
if tr.key-or-zero == key {
89
default = tr;
910
continue = false;
1011
}
11-
}};
12+
};
1213
if not(non-zero(default)) {
1314
for vector tr in global-tctx.lookup(key, mk-vector(type(TypeContextRow)) ) {
1415
if tr.key-or-zero == key {
@@ -29,12 +30,13 @@ let .lookups(tctx: TypeContext?, key: CString): Vector<TypeContextRow> = tctx.ge
2930
let .lookups(trs: List<TypeContextRow>, key: CString): Vector<TypeContextRow> = (
3031
let default = mk-vector(type(TypeContextRow));
3132
let continue = true;
32-
for list tr in trs { if continue {
33+
while non-zero(trs) and continue {
34+
let tr = head(trs); trs = tail(trs);
3335
if tr.key-or-zero == key {
3436
default = default.push(tr);
3537
continue = false;
3638
}
37-
}};
39+
};
3840
if continue {
3941
for vector tr in global-tctx.lookup(key, mk-vector(type(TypeContextRow)) ) {
4042
if tr.key-or-zero == key {
@@ -49,11 +51,12 @@ let .lookup-phi(tctx: TypeContext?, key: CString): PhiContextRow = tctx.get-or(m
4951
let .lookup(trs: List<PhiContextRow>, key: CString): PhiContextRow = (
5052
let default = NullPhiContextRow;
5153
let continue = true;
52-
for list tr in trs { if continue {
54+
while non-zero(trs) and continue {
55+
let tr = head(trs); trs = tail(trs);
5356
if tr.phi-id-or-zero == key {
5457
default = tr;
5558
if not(tr.dead-on-arrival-or-zero) then continue = false;
5659
}
57-
}};
60+
};
5861
default
5962
);

0 commit comments

Comments
 (0)