LRDE Tiger Compiler  1.34a $Id: 7fef12e1f5fa43449d667a0eec1d837c40fc1202 $
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
tasks.hh
Go to the documentation of this file.
1 
6 #ifndef TARGET_TASKS_HH
7 # define TARGET_TASKS_HH
8 
9 # include <task/libtask.hh>
10 
11 # include <assem/fragment.hh>
12 
13 # include <target/fwd.hh>
14 # include <target/cpu-limits.hh>
15 
16 namespace target
17 {
18  namespace tasks
19  {
21  extern std::unique_ptr<assem::Fragments> fragments;
22 
24  extern std::unique_ptr<Target> target;
25 
27  extern CpuLimits limits;
28 
29  TASK_GROUP("7. Target selection");
30 
32  TASK_DECLARE("i|inst-compute", "select the instructions",
33  inst_compute, "lir-compute targeted");
34 
36  TASK_DECLARE("R|runtime-display", "display the runtime",
37  runtime_display, "targeted");
38 
40  BOOLEAN_TASK_DECLARE("inst-debug", "enable instructions verbose display",
41  inst_debug_p, "");
42 
44  BOOLEAN_TASK_DECLARE("rule-trace", "enable rule reducing display",
45  rule_trace_p, "");
46 
48  BOOLEAN_TASK_DECLARE("garbage-collection", "enable garbage collection",
49  gc_p, "");
50 
52  TASK_DECLARE("I|inst-display", "display the instructions",
53  inst_display, "inst-compute");
54 
56  TASK_DECLARE("Y|nolimips-display",
57  "display Nolimips compatible instructions (i.e., allocate "
58  "the frames and then display the instructions",
59  nolimips_display, "inst-compute");
60 
62  DISJUNCTIVE_TASK_DECLARE("targeted", "default the target to MIPS",
63  "target-mips target-ia32");
64 
66  TASK_DECLARE("target-mips", "select MIPS as target",
67  target_mips, "");
68 
70  TASK_DECLARE("target-ia32", "select IA-32 as target",
71  target_ia32, "");
72 
74  TASK_DECLARE("target-display", "display the current target",
75  target_display, "targeted");
76 
78  INT_TASK_DECLARE("callee-save", 0, 99,
79  "max number of callee save registers",
81 
83  INT_TASK_DECLARE("caller-save", 0, 99,
84  "max number of caller save registers",
86 
88  INT_TASK_DECLARE("argument", 0, 99,
89  "max number of argument registers",
90  limits.argument_max, "");
91  } // namespace tasks
92 
93 } // namespace target
94 
95 #endif // !TARGET_TASKS_HH