1 //===- Common.td - Common definitions for LLVMC2 ----------*- tablegen -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file contains common definitions used in llvmc tool description files.
12 //===----------------------------------------------------------------------===//
14 class Tool<list<dag> l> {
15 list<dag> properties = l;
18 // Possible Tool properties.
31 // Possible option types.
35 def switch_list_option;
37 def parameter_list_option;
39 def prefix_list_option;
41 // Possible option properties.
53 def forward_not_split;
55 // The 'case' construct.
74 def input_languages_contain;
78 def single_input_file;
79 def multiple_input_files;
90 def forward_transformed_value;
99 // Increase the edge weight.
102 // Option list - a single place to specify options.
103 class OptionList<list<dag> l> {
104 list<dag> options = l;
107 // Option preprocessor - actions taken during plugin loading.
108 class OptionPreprocessor<dag d> {
109 dag preprocessor = d;
112 // Map from suffixes to language names
114 def lang_to_suffixes;
116 class LanguageMap<list<dag> l> {
125 class CompilationGraph<list<dag> l> {