1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-23 12:00:21 +02:00

Remove "sym" from $use-map

* module/language/cps/dfg.scm ($use-map): Remove "sym" from use-map;
  it's redundant.  Adapt callers.
This commit is contained in:
Andy Wingo 2014-03-30 11:36:59 +02:00
parent cec43eb8f6
commit b99553301c

View file

@ -124,9 +124,8 @@
(nvars dfg-nvars)) (nvars dfg-nvars))
(define-record-type $use-map (define-record-type $use-map
(make-use-map sym def uses) (make-use-map def uses)
use-map? use-map?
(sym use-map-sym)
(def use-map-def) (def use-map-def)
(uses use-map-uses set-use-map-uses!)) (uses use-map-uses set-use-map-uses!))
@ -711,6 +710,7 @@ BODY for each body continuation in the prompt."
(define (compute-live-variables fun dfg) (define (compute-live-variables fun dfg)
(let* ((var-map (make-hash-table)) (let* ((var-map (make-hash-table))
(min-var (dfg-min-var dfg))
(nvars (dfg-nvars dfg)) (nvars (dfg-nvars dfg))
(cfa (analyze-control-flow fun dfg #:reverse? #t (cfa (analyze-control-flow fun dfg #:reverse? #t
#:add-handler-preds? #t)) #:add-handler-preds? #t))
@ -730,10 +730,10 @@ BODY for each body continuation in the prompt."
(when (< n (vector-length use-maps)) (when (< n (vector-length use-maps))
(match (vector-ref use-maps n) (match (vector-ref use-maps n)
(#f (lp (1+ n))) (#f (lp (1+ n)))
(($ $use-map var def uses) (($ $use-map def uses)
(let ((v (counter++))) (let ((v (counter++)))
(hashq-set! var-map var v) (hashq-set! var-map (+ n min-var) v)
(vector-set! syms v var) (vector-set! syms v (+ n min-var))
(for-each (lambda (def) (for-each (lambda (def)
(vector-push! defv (cfa-k-idx cfa def) v)) (vector-push! defv (cfa-k-idx cfa def) v))
(block-preds (lookup-block def dfg))) (block-preds (lookup-block def dfg)))
@ -783,13 +783,12 @@ BODY for each body continuation in the prompt."
(define (add-def! var def-k) (define (add-def! var def-k)
(unless def-k (unless def-k
(error "Term outside labelled continuation?")) (error "Term outside labelled continuation?"))
(vector-set! use-maps (- var min-var) (vector-set! use-maps (- var min-var) (make-use-map def-k '())))
(make-use-map var def-k '())))
(define (add-use! var use-k) (define (add-use! var use-k)
(match (vector-ref use-maps (- var min-var)) (match (vector-ref use-maps (- var min-var))
(#f (error "Variable out of scope?" var)) (#f (error "Variable out of scope?" var))
((and use-map ($ $use-map sym def uses)) ((and use-map ($ $use-map def uses))
(set-use-map-uses! use-map (cons use-k uses))))) (set-use-map-uses! use-map (cons use-k uses)))))
(define* (declare-block! label cont parent (define* (declare-block! label cont parent
@ -954,14 +953,14 @@ BODY for each body continuation in the prompt."
(match dfg (match dfg
(($ $dfg conts blocks use-maps min-label nlabels min-var nvars) (($ $dfg conts blocks use-maps min-label nlabels min-var nvars)
(match (vector-ref use-maps (- var min-var)) (match (vector-ref use-maps (- var min-var))
(($ $use-map sym def uses) (($ $use-map def uses)
def))))) def)))))
(define (lookup-uses var dfg) (define (lookup-uses var dfg)
(match dfg (match dfg
(($ $dfg conts blocks use-maps min-label nlabels min-var nvars) (($ $dfg conts blocks use-maps min-label nlabels min-var nvars)
(match (vector-ref use-maps (- var min-var)) (match (vector-ref use-maps (- var min-var))
(($ $use-map sym def uses) (($ $use-map def uses)
uses))))) uses)))))
(define (lookup-block-scope k dfg) (define (lookup-block-scope k dfg)
@ -1023,7 +1022,7 @@ BODY for each body continuation in the prompt."
(match dfg (match dfg
(($ $dfg conts blocks use-maps min-label nlabels min-var nvars) (($ $dfg conts blocks use-maps min-label nlabels min-var nvars)
(match (vector-ref use-maps (- sym min-var)) (match (vector-ref use-maps (- sym min-var))
(($ $use-map _ def uses) (($ $use-map def uses)
(or-map (or-map
(lambda (use) (lambda (use)
(match (find-expression (lookup-cont use dfg)) (match (find-expression (lookup-cont use dfg))