* important realization that set->list is perhaps the most expensive
operation on sets. Working on eliminating most uses of set->list.
This commit is contained in:
parent
2b5b555bac
commit
c473619084
BIN
src/ikarus.boot
BIN
src/ikarus.boot
Binary file not shown.
|
@ -1765,7 +1765,7 @@
|
||||||
[vars (var-var-conf x)])
|
[vars (var-var-conf x)])
|
||||||
(let f ([i 1])
|
(let f ([i 1])
|
||||||
(cond
|
(cond
|
||||||
[(frame-conflict? i vars frms) (f (fxadd1 i))]
|
[(set-member? i frms) (f (fxadd1 i))]
|
||||||
[else
|
[else
|
||||||
(let ([fv (mkfvar i)])
|
(let ([fv (mkfvar i)])
|
||||||
(set-var-loc! x fv)
|
(set-var-loc! x fv)
|
||||||
|
@ -1795,9 +1795,9 @@
|
||||||
(for-each-var (var-var-move x) varvec
|
(for-each-var (var-var-move x) varvec
|
||||||
(lambda (var)
|
(lambda (var)
|
||||||
(set-var-var-move! var
|
(set-var-var-move! var
|
||||||
(rem-var x (var-var-move var)))
|
(rem-var x (var-var-move var)))
|
||||||
(set-var-frm-move! var
|
(set-var-frm-move! var
|
||||||
(add-frm fv (var-frm-move var)))
|
(add-frm fv (var-frm-move var)))
|
||||||
(let ([loc (var-loc var)])
|
(let ([loc (var-loc var)])
|
||||||
(when (and loc (not (fvar? loc)))
|
(when (and loc (not (fvar? loc)))
|
||||||
(assign-move var)))))
|
(assign-move var)))))
|
||||||
|
|
|
@ -487,6 +487,8 @@
|
||||||
,(E body))]
|
,(E body))]
|
||||||
[(shortcut body handler)
|
[(shortcut body handler)
|
||||||
`(shortcut ,(E body) ,(E handler))]
|
`(shortcut ,(E body) ,(E handler))]
|
||||||
|
[(ntcall target valuw args mask size)
|
||||||
|
`(ntcall ,target ,size)]
|
||||||
[else
|
[else
|
||||||
(if (symbol? x)
|
(if (symbol? x)
|
||||||
x
|
x
|
||||||
|
@ -2230,7 +2232,7 @@
|
||||||
(define (simplify arg lhs* rhs* k)
|
(define (simplify arg lhs* rhs* k)
|
||||||
(if (simple? arg)
|
(if (simple? arg)
|
||||||
(k arg lhs* rhs*)
|
(k arg lhs* rhs*)
|
||||||
(let ([v (unique-var 'tmp)])
|
(let ([v (unique-var 'tp)])
|
||||||
(k v (cons v lhs*) (cons (Expr arg) rhs*)))))
|
(k v (cons v lhs*) (cons (Expr arg) rhs*)))))
|
||||||
(define (simplify* arg* lhs* rhs* k)
|
(define (simplify* arg* lhs* rhs* k)
|
||||||
(cond
|
(cond
|
||||||
|
|
Loading…
Reference in New Issue