mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-01 04:10:18 +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:
parent
6756aeff95
commit
d5347b59fb
2 changed files with 12 additions and 0 deletions
|
@ -612,6 +612,17 @@
|
||||||
(build-term
|
(build-term
|
||||||
($continue kcall src ($prim 'procedure?)))))
|
($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)
|
(define (lower-primcalls cps)
|
||||||
(with-fresh-name-state cps
|
(with-fresh-name-state cps
|
||||||
(persistent-intmap
|
(persistent-intmap
|
||||||
|
|
|
@ -194,3 +194,4 @@
|
||||||
(define-branching-primitive = 2)
|
(define-branching-primitive = 2)
|
||||||
|
|
||||||
(define-branching-primitive procedure? 1)
|
(define-branching-primitive procedure? 1)
|
||||||
|
(define-branching-primitive number? 1)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue