inline symbol? and vector? to opcodes, and a psyntax inlining tweak
* libguile/vm-i-scheme.c (symbol?, vector?): New instructions. Renumbered the rest. * libguile/vm-i-system.c: Renumber instructions. * libguile/_scm.h (SCM_OBJCODE_MINOR_VERSION): Bump. * module/ice-9/psyntax.scm (binding-type, binding-value): Define using macros so that we inline to car and cdr opcodes. Oh, for an inliner :) * module/language/tree-il/compile-glil.scm (*primcall-ops*) * module/language/tree-il/primitives.scm (*interesting-primitive-names*, *effect-free-primitives*) (*effect+exception-free-primitives*): Add symbol? and vector? inlines.
This commit is contained in:
parent
1ecf39a6a7
commit
cf45ff030c
6 changed files with 186 additions and 168 deletions
|
|
@ -554,8 +554,12 @@
|
|||
((_ type value) (cons type value))
|
||||
((_ 'type) '(type))
|
||||
((_ type) (cons type '()))))
|
||||
(define binding-type car)
|
||||
(define binding-value cdr)
|
||||
(define-syntax binding-type
|
||||
(syntax-rules ()
|
||||
((_ x) (car x))))
|
||||
(define-syntax binding-value
|
||||
(syntax-rules ()
|
||||
((_ x) (cdr x))))
|
||||
|
||||
(define-syntax null-env (identifier-syntax '()))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue