* 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)
|
||||||
|
|
|
@ -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