diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2008-03-23 08:57:20 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2008-03-23 08:57:20 +0000 |
commit | ac67b7ea8fcd530995d7aefd2ad0f04543789855 (patch) | |
tree | ed9601b834e843e454707c7b07595ce91e27acbd /tools/llvmc2/Common.td | |
parent | d59c517a8309faac030d98b37459ca18a204da5a (diff) | |
download | external_llvm-ac67b7ea8fcd530995d7aefd2ad0f04543789855.zip external_llvm-ac67b7ea8fcd530995d7aefd2ad0f04543789855.tar.gz external_llvm-ac67b7ea8fcd530995d7aefd2ad0f04543789855.tar.bz2 |
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
Diffstat (limited to 'tools/llvmc2/Common.td')
-rw-r--r-- | tools/llvmc2/Common.td | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/tools/llvmc2/Common.td b/tools/llvmc2/Common.td new file mode 100644 index 0000000..15b9264 --- /dev/null +++ b/tools/llvmc2/Common.td @@ -0,0 +1,63 @@ +//===- 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; +} |