* 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)]) [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)))))

View File

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