Replace ($var sym) with ($values (sym)).
[bpt/guile.git] / module / language / cps / dfg.scm
index 4d38d52..d6cfcf3 100644 (file)
       (($ $continue k src exp)
        (use-k! k)
        (match exp
-         (($ $var sym)
-          (use! sym))
-
          (($ $call proc args)
           (use! proc)
           (for-each use! args))
          (lambda (use)
            (match (find-expression (lookup-cont use conts))
              (($ $call) #f)
-             (($ $values) #f)
+             (($ $values (_ _ . _)) #f)
              (($ $primcall 'free-ref (closure slot))
               (not (eq? sym slot)))
              (($ $primcall 'free-set! (closure slot value))
               #f)
              (($ $primcall 'resolve (name bound?))
               (eq? sym name))
-             (($ $primcall 'make-vector (len init))
-              (not (and (eq? sym len) (immediate-u8? val))))
-             (($ $primcall 'vector-ref (v i))
-              (not (and (eq? sym i) (immediate-u8? val))))
-             (($ $primcall 'vector-set! (v i x))
-              (not (and (eq? sym i) (immediate-u8? val))))
+             (($ $primcall 'make-vector/immediate (len init))
+              (not (eq? sym len)))
+             (($ $primcall 'vector-ref/immediate (v i))
+              (not (eq? sym i)))
+             (($ $primcall 'vector-set!/immediate (v i x))
+              (not (eq? sym i)))
+             (($ $primcall 'allocate-struct/immediate (vtable nfields))
+              (not (eq? sym nfields)))
+             (($ $primcall 'struct-ref/immediate (s n))
+              (not (eq? sym n)))
+             (($ $primcall 'struct-set!/immediate (s n x))
+              (not (eq? sym n)))
              (($ $primcall 'builtin-ref (idx))
               #f)
              (_ #t)))