projects
/
oota-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Instead of adding an isSS field to LiveInterval to denote stack slot. Use top bit...
[oota-llvm.git]
/
tools
/
llvmc2
/
Common.td
diff --git
a/tools/llvmc2/Common.td
b/tools/llvmc2/Common.td
index 32e0180f8b86717f7e4394d2f6de480fb97931e6..046e19e4448e2db484c88cdb21a53b7c3eb8e6e9 100644
(file)
--- a/
tools/llvmc2/Common.td
+++ b/
tools/llvmc2/Common.td
@@
-1,4
+1,4
@@
-//===-
Tools.td - Common definitions for LLVMCC -
----------*- tablegen -*-===//
+//===-
Common.td - Common definitions for LLVMCC
----------*- tablegen -*-===//
//
// The LLVM Compiler Infrastructure
//
//
// The LLVM Compiler Infrastructure
//
@@
-15,7
+15,7
@@
class Tool<list<dag> l> {
list<dag> properties = l;
}
list<dag> properties = l;
}
-// Special Tool instance -
graph root
.
+// Special Tool instance -
the root node of the compilation graph
.
def root : Tool<[]>;
def root : Tool<[]>;
@@
-30,6
+30,7
@@
def sink;
// Possible option types
// Possible option types
+def alias_option;
def switch_option;
def parameter_option;
def parameter_list_option;
def switch_option;
def parameter_option;
def parameter_list_option;
@@
-45,18
+46,34
@@
def unpack_values;
def help;
def required;
def help;
def required;
-// Possible edge properties
+// Empty DAG marker.
+def empty;
+// The 'case' construct.
+def case;
+
+// Primitive tests.
def switch_on;
def parameter_equals;
def element_in_list;
def switch_on;
def parameter_equals;
def element_in_list;
-def if_input_languages_contain;
+def input_languages_contain;
+def not_empty;
+// TOTHINK: remove?
+def default;
-// Edge property combinators.
-def weight;
+// Boolean operators.
def and;
def or;
def and;
def or;
+// Increase/decrease the edge weight.
+def inc_weight;
+def dec_weight;
+
+// Option list - used to specify aliases and sometimes help strings.
+class OptionList<list<dag> l> {
+ list<dag> options = l;
+}
+
// Map from suffixes to language names
class LangToSuffixes<string str, list<string> lst> {
// Map from suffixes to language names
class LangToSuffixes<string str, list<string> lst> {
@@
-70,19
+87,19
@@
class LanguageMap<list<LangToSuffixes> lst> {
// Compilation graph
// Compilation graph
-class EdgeBase<Tool t1, Tool t2,
list<dag> lst
> {
+class EdgeBase<Tool t1, Tool t2,
dag d
> {
Tool a = t1;
Tool b = t2;
Tool a = t1;
Tool b = t2;
-
list<dag> props = lst
;
+
dag weight = d
;
}
}
-class Edge<Tool t1, Tool t2> : EdgeBase<t1, t2,
[]
>;
+class Edge<Tool t1, Tool t2> : EdgeBase<t1, t2,
(empty)
>;
// Edge and SimpleEdge are synonyms.
// Edge and SimpleEdge are synonyms.
-class SimpleEdge<Tool t1, Tool t2> : EdgeBase<t1, t2,
[]
>;
+class SimpleEdge<Tool t1, Tool t2> : EdgeBase<t1, t2,
(empty)
>;
// Optionally enabled edge.
// Optionally enabled edge.
-class OptionalEdge<Tool t1, Tool t2,
list<dag> lst> : EdgeBase<t1, t2, lst
>;
+class OptionalEdge<Tool t1, Tool t2,
dag props> : EdgeBase<t1, t2, props
>;
class CompilationGraph<list<EdgeBase> lst> {
list<EdgeBase> edges = lst;
class CompilationGraph<list<EdgeBase> lst> {
list<EdgeBase> edges = lst;