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:
parent
6756aeff95
commit
d5347b59fb
2 changed files with 12 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -194,3 +194,4 @@
|
|||
(define-branching-primitive = 2)
|
||||
|
||||
(define-branching-primitive procedure? 1)
|
||||
(define-branching-primitive number? 1)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue