guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 03/25: Bug-fix to devirtualize-integers pass


From: Andy Wingo
Subject: [Guile-commits] 03/25: Bug-fix to devirtualize-integers pass
Date: Mon, 8 Jan 2018 09:25:02 -0500 (EST)

wingo pushed a commit to branch master
in repository guile.

commit d4addf3792833a8ea392385cc9ae792f021a3f9b
Author: Andy Wingo <address@hidden>
Date:   Sun Jan 7 12:58:32 2018 +0100

    Bug-fix to devirtualize-integers pass
    
    * module/language/cps/devirtualize-integers.scm (peel-trace): Only
      terminate a trace at a branch if the set of live vars is empty.
---
 module/language/cps/devirtualize-integers.scm | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/module/language/cps/devirtualize-integers.scm 
b/module/language/cps/devirtualize-integers.scm
index 7dd66f1..16117c3 100644
--- a/module/language/cps/devirtualize-integers.scm
+++ b/module/language/cps/devirtualize-integers.scm
@@ -170,7 +170,7 @@ the trace should be referenced outside of it."
                    (can-terminate-trace? uses-of-interest?)
                    (peeled-args (rename-uses args)))
               (cond
-               ((not (any-use-of-interest? args))
+               ((not uses-of-interest?)
                 (fail))
                ((bailout? kt)
                 (continue kf live-vars defs-of-interest? can-terminate-trace?
@@ -182,12 +182,14 @@ the trace should be referenced outside of it."
                           (lambda (kt)
                             (build-term
                               ($branch kf kt src op param peeled-args)))))
-               (else
+               ((eq? live-vars empty-intmap)
                 (with-cps cps
                   (letk label*
                         ($kargs names peeled-vars
                           ($branch kf kt src op param peeled-args)))
-                  label*)))))
+                  label*))
+               (else
+                (fail)))))
            (($ $continue k src exp)
             (match exp
               (($ $const)



reply via email to

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