guile-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Guile-commits] 04/04: 'sort-labels-locally' uses a transient intset.


From: Ludovic Courtès
Subject: [Guile-commits] 04/04: 'sort-labels-locally' uses a transient intset.
Date: Mon, 23 Mar 2020 17:50:33 -0400 (EDT)

civodul pushed a commit to branch master
in repository guile.

commit f8f8986e4a5fad520e0f9e5e150b45178c0a7ed4
Author: Ludovic Courtès <address@hidden>
AuthorDate: Mon Mar 23 22:05:45 2020 +0100

    'sort-labels-locally' uses a transient intset.
    
    * module/language/cps/renumber.scm (sort-labels-locally): Use a
    transient intset.
---
 module/language/cps/renumber.scm | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/module/language/cps/renumber.scm b/module/language/cps/renumber.scm
index 7200a5f..19080c5 100644
--- a/module/language/cps/renumber.scm
+++ b/module/language/cps/renumber.scm
@@ -1,6 +1,6 @@
 ;;; Continuation-passing style (CPS) intermediate language (IL)
 
-;; Copyright (C) 2013-2019 Free Software Foundation, Inc.
+;; Copyright (C) 2013-2020 Free Software Foundation, Inc.
 
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
@@ -80,8 +80,8 @@
         (let-values (((order visited) (visit k0 order visited)))
           (visit k1 order visited)))
       (if (intset-ref visited k)
-          (values order visited)
-          (let ((visited (intset-add visited k)))
+          (values order (persistent-intset visited))
+          (let ((visited (intset-add! visited k)))
             (call-with-values
                 (lambda ()
                   (match (intmap-ref conts k)
@@ -109,7 +109,7 @@
                     (($ $ktail) (values order visited))))
               (lambda (order visited)
                 ;; Add k to the reverse post-order.
-                (values (cons k order) visited))))))))
+                (values (cons k order) (persistent-intset visited)))))))))
 
 (define (compute-renaming conts kfun)
   ;; labels := old -> new



reply via email to

[Prev in Thread] Current Thread [Next in Thread]