LRDE Tiger Compiler
1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
|
Inlining functions of an ast::Ast. More...
Namespaces | |
namespace | tasks |
Tasks of the inlining module. |
Classes | |
class | Inliner |
Perform inline expansion of functions. More... | |
class | Pruner |
Prune useless function declarations within an AST. More... |
Functions | |
template<typename A > | |
A * | inline_expand (const A &tree) |
template ast::DecsList * | inline_expand (const ast::DecsList &) |
template<typename A > | |
A * | prune (const A &tree) |
template ast::DecsList * | prune (const ast::DecsList &) |
Inlining functions of an ast::Ast.
A * inlining::inline_expand | ( | const A & | tree | ) |
Perform inline expansion of function bodies.
tree | abstract syntax tree's root, whose bindings and types have been computed. Each identifier must also be unique within the AST to avoid name capture ( |
References assertion, desugar::bind_and_types_check(), and astclone::Cloner::result_get().
Referenced by inlining::tasks::inline_expand().
template ast::DecsList* inlining::inline_expand | ( | const ast::DecsList & | ) |
A * inlining::prune | ( | const A & | tree | ) |
Prune unused function from the AST.
tree | abstract syntax tree's root, whose bindings and types have been computed, and whose identifiers are all unique. |
References assertion, desugar::bind_and_types_check(), and astclone::Cloner::result_get().
Referenced by inlining::tasks::prune().
template ast::DecsList* inlining::prune | ( | const ast::DecsList & | ) |