This is an automated email from the git hooks/post-receive script.

wingo pushed a commit to branch main
in repository guile.

The following commit(s) were added to refs/heads/main by this push:
     new d5347b59f Better compilation of number?
d5347b59f is described below

commit d5347b59fb25a61c37990db6248072c7cb413a7f
Author: Andy Wingo <wi...@pobox.com>
AuthorDate: Fri Sep 15 11:19:49 2023 +0200

    Better compilation of number?
    
    * module/language/cps/guile-vm/lower-primcalls.scm (number?):
    * module/language/tree-il/cps-primitives.scm (number?): Lower as CPS
    branching predicate.
---
 module/language/cps/guile-vm/lower-primcalls.scm | 11 +++++++++++
 module/language/tree-il/cps-primitives.scm       |  1 +
 2 files changed, 12 insertions(+)

diff --git a/module/language/cps/guile-vm/lower-primcalls.scm 
b/module/language/cps/guile-vm/lower-primcalls.scm
index 3072bb7bf..cff370431 100644
--- a/module/language/cps/guile-vm/lower-primcalls.scm
+++ b/module/language/cps/guile-vm/lower-primcalls.scm
@@ -612,6 +612,17 @@
     (build-term
       ($continue kcall src ($prim 'procedure?)))))
 
+(define-branching-primcall-lowerer (number? cps kf kt src #f (x))
+  (with-cps cps
+    (letk kheap-num
+          ($kargs () ()
+            ($branch kf kt src 'heap-number? #f (x))))
+    (letk kheap
+          ($kargs () ()
+            ($branch kf kheap-num src 'heap-object? #f (x))))
+    (build-term
+      ($branch kheap kt src 'fixnum? #f (x)))))
+
 (define (lower-primcalls cps)
   (with-fresh-name-state cps
     (persistent-intmap
diff --git a/module/language/tree-il/cps-primitives.scm 
b/module/language/tree-il/cps-primitives.scm
index c6ab96471..5e7199d78 100644
--- a/module/language/tree-il/cps-primitives.scm
+++ b/module/language/tree-il/cps-primitives.scm
@@ -194,3 +194,4 @@
 (define-branching-primitive = 2)
 
 (define-branching-primitive procedure? 1)
+(define-branching-primitive number? 1)

Reply via email to