* 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)])
|
||||
(let f ([i 1])
|
||||
(cond
|
||||
[(frame-conflict? i vars frms) (f (fxadd1 i))]
|
||||
[(set-member? i frms) (f (fxadd1 i))]
|
||||
[else
|
||||
(let ([fv (mkfvar i)])
|
||||
(set-var-loc! x fv)
|
||||
|
@ -1795,9 +1795,9 @@
|
|||
(for-each-var (var-var-move x) varvec
|
||||
(lambda (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
|
||||
(add-frm fv (var-frm-move var)))
|
||||
(add-frm fv (var-frm-move var)))
|
||||
(let ([loc (var-loc var)])
|
||||
(when (and loc (not (fvar? loc)))
|
||||
(assign-move var)))))
|
||||
|
|
|
@ -487,6 +487,8 @@
|
|||
,(E body))]
|
||||
[(shortcut body handler)
|
||||
`(shortcut ,(E body) ,(E handler))]
|
||||
[(ntcall target valuw args mask size)
|
||||
`(ntcall ,target ,size)]
|
||||
[else
|
||||
(if (symbol? x)
|
||||
x
|
||||
|
@ -2230,7 +2232,7 @@
|
|||
(define (simplify arg lhs* rhs* k)
|
||||
(if (simple? arg)
|
||||
(k arg lhs* rhs*)
|
||||
(let ([v (unique-var 'tmp)])
|
||||
(let ([v (unique-var 'tp)])
|
||||
(k v (cons v lhs*) (cons (Expr arg) rhs*)))))
|
||||
(define (simplify* arg* lhs* rhs* k)
|
||||
(cond
|
||||
|
|
Loading…
Reference in New Issue