Next: , Previous: , Up: compiler   [Index]


17.7 The full transformation

The sequence of compiler passes is:

pass-recordize
pass-optimize-direct-calls
pass-optimize-letrec
pass-source-optimize
pass-rewrite-references-and-assignments
pass-core-type-inference (optional)
pass-introduce-unsafe-primrefs (optional)
pass-sanitize-bindings
pass-optimize-for-direct-jumps
pass-insert-global-assignments
pass-introduce-vars
pass-introduce-closure-makers
pass-optimize-combinator-calls/lift-clambdas

the sequence in which the passes are performed cannot be changed; they must be performed in the specified order. The passes functions are to be considered unsafe: if the input is invalid, the behaviour is undefined.

The following bindings are exported by the library (vicare compiler).

Function: compile-core-expr->code core-language-sexp