Andy Wingo
7ea00e230a
Contify functions in the scope of their continuation.
...
* module/language/cps/contification.scm (contify): Fix to contify
functions in the scope of their continuation.
2013-10-04 14:08:52 +02:00
Andy Wingo
d51fb1e67b
dfg: variable-free-in?, add variable-bound-in?
...
* module/language/cps/dfg.scm (variable-free-in?): Rename from
variable-used-in?, to match CWCC language.
(variable-bound-in?): New interface.
* module/language/cps/contification.scm (contify): Adapt caller. Add
more comments.
2013-10-04 14:07:36 +02:00
Andy Wingo
e675e9bd39
Add new "source" macro instruction; compile-rtl emits it.
...
* module/system/vm/assembler.scm (<asm>): Add "sources" field.
(make-assembler): Adapt to make-asm change.
(source): New macro assembler.
* module/language/cps/compile-rtl.scm (emit-rtl-sequence):
(compile-fun): Emit source instructions as appropriate.
2013-09-30 21:48:07 +02:00
Andy Wingo
8ac8e2dfeb
Add contification pass
...
* module/Makefile.am:
* module/language/cps/contification.scm: New pass.
* module/language/cps/compile-rtl.scm (optimize): Wire it into the
compiler.
2013-08-31 09:40:56 +02:00
Andy Wingo
6e8ad82335
Add CPS -> RTL compiler
...
* module/Makefile.am:
* module/language/cps/compile-rtl.scm:
* module/language/cps/dfg.scm:
* module/language/cps/slot-allocation.scm: New modules.
* module/language/cps/spec.scm: Register the compiler.
* test-suite/Makefile.am:
* test-suite/tests/rtl-compilation.test: Add tests.
2013-08-31 09:40:56 +02:00
Andy Wingo
934e6b9515
Add pass to reify primcalls without corresponding VM ops
...
* module/Makefile.am:
* module/language/cps/reify-primitives.scm: New pass.
2013-08-31 09:40:56 +02:00
Andy Wingo
026b561154
Add arity-adapting module
...
* module/Makefile.am:
* module/language/cps/arities.scm: New module. Adapts call and return
arities, especially for primcalls.
2013-08-31 09:40:56 +02:00
Andy Wingo
045392f1b2
Add CPS primitives info module
...
* module/Makefile.am:
* module/language/cps/primitives.scm: New file.
2013-08-31 09:40:56 +02:00
Andy Wingo
4b8de65e9d
Add closure conversion
...
* module/Makefile.am
* module/language/cps/closure-conversion.scm: New module, implementing a
closure conversion pass.
2013-08-31 09:40:56 +02:00
Andy Wingo
4fefc3a867
(compile foo #:to 'cps)
...
* module/language/tree-il/compile-cps.scm: New module implementing CPS
conversion of Tree-IL.
* module/Makefile.am:
* module/language/tree-il/spec.scm:
* module/language/cps/spec.scm: Integrate CPS in the build and language
system.
2013-08-31 09:40:56 +02:00
Andy Wingo
80b01fd086
Add CPS language
...
* module/Makefile.am:
* module/language/cps.scm:
* module/language/cps/verify.scm: Add CPS language.
* .dir-locals.el: Add indentation rules for some CPS forms.
2013-08-31 09:40:56 +02:00