aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm/include/llvm/CompilerDriver/Common.td
blob: 6ba30aaa640679eaf1e749e9108525f3bf97fa6c (plain) (blame)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
//===- Common.td - Common definitions for LLVMC2  ----------*- tablegen -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file contains common definitions used in llvmc tool description files.
//
//===----------------------------------------------------------------------===//

class Tool<list<dag> l> {
      list<dag> properties = l;
}

// Possible Tool properties.

def in_language;
def out_language;
def output_suffix;
def command;
def out_file_option;
def in_file_option;
def join;
def sink;
def works_on_empty;
def actions;

// Possible option types.

def alias_option;
def switch_option;
def switch_list_option;
def parameter_option;
def parameter_list_option;
def prefix_option;
def prefix_list_option;

// Possible option properties.

def help;
def hidden;
def init;
def multi_val;
def one_or_more;
def zero_or_more;
def optional;
def really_hidden;
def required;
def comma_separated;
def forward_not_split;

// The 'case' construct.
def case;

// Boolean constants.
class Bool<bit val> {
      bit Value = val;
}
def true : Bool<1>;
def false : Bool<0>;

// Boolean operators.
def and;
def or;
def not;

// Primitive tests.
def switch_on;
def parameter_equals;
def element_in_list;
def input_languages_contain;
def empty;
def not_empty;
def default;
def single_input_file;
def multiple_input_files;
def any_switch_on;
def any_not_empty;
def any_empty;

// Possible actions.

def append_cmd;
def forward;
def forward_as;
def forward_value;
def forward_transformed_value;
def stop_compilation;
def no_out_file;
def unpack_values;
def warning;
def error;
def set_option;
def unset_option;

// Increase the edge weight.
def inc_weight;

// Option list - a single place to specify options.
class OptionList<list<dag> l> {
      list<dag> options = l;
}

// Option preprocessor - actions taken during plugin loading.
class OptionPreprocessor<dag d> {
      dag preprocessor = d;
}

// Map from suffixes to language names

def lang_to_suffixes;

class LanguageMap<list<dag> l> {
      list<dag> map = l;
}

// Compilation graph

def edge;
def optional_edge;

class CompilationGraph<list<dag> l> {
      list<dag> edges = l;
}