llvm-6502/tools/llvmc2/Common.td
Anton Korobeynikov ac67b7ea8f Add first proof-of-concept universal compiler driver framework based
on ideas mentioned in PR686.
Written by Mikhail Glushenkov and contributed by Codedgers, Inc.

Old llvmc will be removed soon after new one will have all its properties.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48699 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-23 08:57:20 +00:00

64 lines
1.3 KiB
TableGen

//===- Tools.td - Common definitions for LLVMCC -----------*- 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 llvmcc 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 cmd_line;
def join;
def sink;
// Possible option types
def switch_option;
def parameter_option;
def parameter_list_option;
def prefix_option;
def prefix_list_option;
// Possible option properties
def append_cmd;
def forward;
def stop_compilation;
def unpack_values;
def help;
def required;
// Map from suffixes to language names
class LangToSuffixes<string str, list<string> lst> {
string lang = str;
list<string> suffixes = lst;
}
class LanguageMap<list<LangToSuffixes> lst> {
list<LangToSuffixes> map = lst;
}
// Toolchain classes
class ToolChain <list<Tool> lst> {
list <Tool> tools = lst;
}
class ToolChains <list<ToolChain> lst> {
list<ToolChain> chains = lst;
}