summaryrefslogtreecommitdiff
path: root/tiger-compiler/src/inlining/tasks.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tiger-compiler/src/inlining/tasks.cc')
-rw-r--r--tiger-compiler/src/inlining/tasks.cc31
1 files changed, 31 insertions, 0 deletions
diff --git a/tiger-compiler/src/inlining/tasks.cc b/tiger-compiler/src/inlining/tasks.cc
new file mode 100644
index 0000000..f812d03
--- /dev/null
+++ b/tiger-compiler/src/inlining/tasks.cc
@@ -0,0 +1,31 @@
+/**
+ ** \file inlining/tasks.cc
+ ** \brief Inlining module related tasks' implementation.
+ **/
+
+#include <ast/tasks.hh>
+#include <astclone/libastclone.hh>
+#include <common.hh>
+#include <inlining/libinlining.hh>
+#define DEFINE_TASKS 1
+#include <inlining/tasks.hh>
+#undef DEFINE_TASKS
+
+namespace inlining::tasks
+{
+ /*-----------.
+ | Inlining. |
+ `-----------*/
+
+ void inline_expand()
+ {
+ astclone::apply(::inlining::inline_expand, ast::tasks::the_program);
+ }
+
+ /*-------------------.
+ | Function pruning. |
+ `-------------------*/
+
+ void prune() { astclone::apply(::inlining::prune, ast::tasks::the_program); }
+
+} // namespace inlining::tasks