X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=tools%2Fllvmc2%2FCommon.td;h=046e19e4448e2db484c88cdb21a53b7c3eb8e6e9;hb=99ec779a93cf7a09ac336b63d2d67818960343a1;hp=32e0180f8b86717f7e4394d2f6de480fb97931e6;hpb=29063554d057ed8aa6ae69b2719c62d24e00e469;p=oota-llvm.git diff --git a/tools/llvmc2/Common.td b/tools/llvmc2/Common.td index 32e0180f8b8..046e19e4448 100644 --- 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 // @@ -15,7 +15,7 @@ class Tool l> { list properties = l; } -// Special Tool instance - graph root. +// Special Tool instance - the root node of the compilation graph. def root : Tool<[]>; @@ -30,6 +30,7 @@ def sink; // Possible option types +def alias_option; def switch_option; def parameter_option; def parameter_list_option; @@ -45,18 +46,34 @@ def unpack_values; 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 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; +// Increase/decrease the edge weight. +def inc_weight; +def dec_weight; + +// Option list - used to specify aliases and sometimes help strings. +class OptionList l> { + list options = l; +} + // Map from suffixes to language names class LangToSuffixes lst> { @@ -70,19 +87,19 @@ class LanguageMap lst> { // Compilation graph -class EdgeBase lst> { +class EdgeBase { Tool a = t1; Tool b = t2; - list props = lst; + dag weight = d; } -class Edge : EdgeBase; +class Edge : EdgeBase; // Edge and SimpleEdge are synonyms. -class SimpleEdge : EdgeBase; +class SimpleEdge : EdgeBase; // Optionally enabled edge. -class OptionalEdge lst> : EdgeBase; +class OptionalEdge : EdgeBase; class CompilationGraph lst> { list edges = lst;