//===- Base.td - LLVMC2 toolchain descriptions -------------*- 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 compilation graph description used by llvmc2. // //===----------------------------------------------------------------------===// include "llvm/CompilerDriver/Common.td" include "llvm/CompilerDriver/Tools.td" // Toolchains def CompilationGraph : CompilationGraph<[ Edge<"root", "llvm_gcc_c">, Edge<"root", "llvm_gcc_assembler">, Edge<"root", "llvm_gcc_cpp">, Edge<"root", "llvm_gcc_m">, Edge<"root", "llvm_gcc_mxx">, Edge<"root", "llvm_as">, Edge<"llvm_gcc_c", "llc">, Edge<"llvm_gcc_cpp", "llc">, Edge<"llvm_gcc_m", "llc">, Edge<"llvm_gcc_mxx", "llc">, Edge<"llvm_as", "llc">, OptionalEdge<"llvm_gcc_c", "opt", (case (switch_on "opt"), (inc_weight))>, OptionalEdge<"llvm_gcc_cpp", "opt", (case (switch_on "opt"), (inc_weight))>, OptionalEdge<"llvm_gcc_m", "opt", (case (switch_on "opt"), (inc_weight))>, OptionalEdge<"llvm_gcc_mxx", "opt", (case (switch_on "opt"), (inc_weight))>, OptionalEdge<"llvm_as", "opt", (case (switch_on "opt"), (inc_weight))>, Edge<"opt", "llc">, Edge<"llc", "llvm_gcc_assembler">, Edge<"llvm_gcc_assembler", "llvm_gcc_linker">, OptionalEdge<"llvm_gcc_assembler", "llvm_gcc_cpp_linker", (case (or (input_languages_contain "c++"), (input_languages_contain "objective-c++")), (inc_weight), (or (parameter_equals "linker", "g++"), (parameter_equals "linker", "c++")), (inc_weight))>, Edge<"root", "llvm_gcc_linker">, OptionalEdge<"root", "llvm_gcc_cpp_linker", (case (or (input_languages_contain "c++"), (input_languages_contain "objective-c++")), (inc_weight), (or (parameter_equals "linker", "g++"), (parameter_equals "linker", "c++")), (inc_weight))> ]>;