1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-29 14:30:34 +02:00

free-ref, free-set take immediate parameters

* module/language/cps/closure-conversion.scm (convert-one):
* module/language/cps/compile-bytecode.scm (compile-function):
* module/language/cps/effects-analysis.scm (define-primitive-effects*)
  (expression-effects, primitive-effects): Only fall back to passing
  constant table if the immediate parameter is false.  Adapt closure
  effects analysis.
* module/language/cps/slot-allocation.scm (compute-needs-slot): Remove
  special cases for free-ref/free-set!.
This commit is contained in:
Andy Wingo 2017-11-01 14:29:20 +01:00
parent 6be04684e6
commit 2f45cfcb9c
4 changed files with 21 additions and 33 deletions

View file

@ -335,10 +335,6 @@ the definitions that are live before and after LABEL, as intsets."
empty-intset)
;; FIXME: Move all of these instructions to use $primcall
;; params.
(($ $primcall 'free-ref #f (closure slot))
(defs+ closure))
(($ $primcall 'free-set! #f (closure slot value))
(defs+* (intset closure value)))
(($ $primcall 'make-vector/immediate #f (len init))
(defs+ init))
(($ $primcall 'vector-ref/immediate #f (v i))