* 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:
Abdulaziz Ghuloum 2007-03-11 20:00:08 -04:00
parent 2b5b555bac
commit c473619084
3 changed files with 6 additions and 4 deletions

Binary file not shown.

View File

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

View File

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