1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-04-30 03:40:34 +02:00

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.
This commit is contained in:
Andy Wingo 2023-09-15 11:19:49 +02:00
parent 6756aeff95
commit d5347b59fb
2 changed files with 12 additions and 0 deletions

View file

@ -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

View file

@ -194,3 +194,4 @@
(define-branching-primitive = 2)
(define-branching-primitive procedure? 1)
(define-branching-primitive number? 1)