summaryrefslogtreecommitdiff
path: root/tiger-compiler/src/escapes/tasks.cc
blob: 42e6919e9390af5a00b0d1223deb6255807e9126 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/**
 ** \file escapes/tasks.cc
 ** \brief Escapes module related tasks' implementation.
 */

#include <ostream>

#include <ast/libast.hh>
#include <ast/tasks.hh>
#include <escapes/libescapes.hh>
#define DEFINE_TASKS 1
#include <escapes/tasks.hh>
#undef DEFINE_TASKS
#include <misc/xalloc.hh>

namespace escapes::tasks
{

  /*--------------------.
    | Static Link tasks.  |
    `--------------------*/

  void escapes_compute() { escapes::escapes_compute(*ast::tasks::the_program); }

  /* WARNING.  It is very tempting to use BOOLEAN_TASK_DECLARE with
     these stream flags, since it factors out the need for the
     following routines.  Unfortunately when the Tasks are created,
     not all the misc::xalloc are instantiated, so the registered
     address of these flags is likely to change if there are other
     xalloc in between.  It is the index that is constant, not the
     address of the pword.

     Of course we could have Tasks dedicated to misc::xalloc, but
     that's not nice.  */

  void escapes_display() { ast::escapes_display(std::cout) = true; }

} // namespace escapes::tasks