1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-05 03:30:24 +02:00
guile/module/language/tree-il
Andy Wingo 8d59d55e86 RTL: Compile prompts
* libguile/vm-engine.c (prompt): Adapt to explicitly set the saved SP so
  we know how many incoming values the handler will receive, and to make
  escape-only? a flag.

* module/language/cps/compile-rtl.scm (emit-rtl-sequence): $prompt
  should only be found in a "seq" context, as it just pushes on a prompt
  and doesn't bind any values.  On the other hand it should emit
  appropriate code for the handler to bind its values, so do that.

* module/language/cps/slot-allocation.scm ($cont-allocation): Add a note
  that proc-slot is used by prompts as well.
  (allocate-slots): Compute the allocation of a prompt handler's args.

* module/language/tree-il/compile-cps.scm (convert): Use "unwind"
  instead of the nonexistent "pop-prompt".

* module/system/vm/disassembler.scm (code-annotation): Adapt to change
  in prompt VM op.
2013-10-14 16:13:57 +02:00
..
analyze.scm Inline escape-only prompt bodies in the Tree-IL 2013-08-11 16:45:31 +02:00
canonicalize.scm Inline escape-only prompt bodies in the Tree-IL 2013-08-11 16:45:31 +02:00
compile-cps.scm RTL: Compile prompts 2013-10-14 16:13:57 +02:00
compile-glil.scm Inline escape-only prompt bodies in the Tree-IL 2013-08-11 16:45:31 +02:00
cse.scm Inline escape-only prompt bodies in the Tree-IL 2013-08-11 16:45:31 +02:00
debug.scm <prompt> body and handler are lambdas; add escape-only? field 2013-07-06 20:27:21 +09:00
effects.scm <prompt> body and handler are lambdas; add escape-only? field 2013-07-06 20:27:21 +09:00
fix-letrec.scm Tree-il post-order rewriter no longer destructive 2013-06-10 22:46:08 +02:00
inline.scm separate peval and a new canonicalization pass into their own modules 2011-09-28 19:39:39 +02:00
optimize.scm Pre-order tree-il rewrites are now non-destructive 2013-06-10 22:46:08 +02:00
peval.scm Fix peval bug with inlining and optional argument initializers 2013-10-10 11:19:19 +02:00
primitives.scm Convert branchable primitives into binary operations only. 2013-08-24 15:18:32 +02:00
spec.scm (compile foo #:to 'cps) 2013-08-31 09:40:56 +02:00