mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-24 22:32:47 +00:00
ac67b7ea8f
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
64 lines
1.3 KiB
TableGen
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;
|
|
}
|