diff options
| author | Eric Christopher <echristo@apple.com> | 2011-09-19 23:22:41 +0000 |
|---|---|---|
| committer | Eric Christopher <echristo@apple.com> | 2011-09-19 23:22:41 +0000 |
| commit | 4b0ae48614983089135cc5f374e5431de368dea7 (patch) | |
| tree | 526b1ada294739549f3dfdd25c487854f56a0cfc /llvm/tools/llvmc/src | |
| parent | f1e2c40b1b42dda9c143e5e9aef9e4f315ae8afc (diff) | |
| download | bcm5719-llvm-4b0ae48614983089135cc5f374e5431de368dea7.tar.gz bcm5719-llvm-4b0ae48614983089135cc5f374e5431de368dea7.zip | |
Remove llvmc and assorted build machinery for it.
The problems that llvmc solved have largely been subsumed with the
tasks that the clang driver can accomplish, but llvmc lacks flexibility
and depends too heavily on the EOL'd llvm-gcc.
llvm-svn: 140093
Diffstat (limited to 'llvm/tools/llvmc/src')
| -rw-r--r-- | llvm/tools/llvmc/src/AutoGenerated.td | 17 | ||||
| -rw-r--r-- | llvm/tools/llvmc/src/Base.td.in | 461 | ||||
| -rw-r--r-- | llvm/tools/llvmc/src/CMakeLists.txt | 19 | ||||
| -rw-r--r-- | llvm/tools/llvmc/src/Clang.td | 87 | ||||
| -rw-r--r-- | llvm/tools/llvmc/src/Hooks.cpp | 193 | ||||
| -rw-r--r-- | llvm/tools/llvmc/src/Main.cpp | 16 | ||||
| -rw-r--r-- | llvm/tools/llvmc/src/Makefile | 14 |
7 files changed, 0 insertions, 807 deletions
diff --git a/llvm/tools/llvmc/src/AutoGenerated.td b/llvm/tools/llvmc/src/AutoGenerated.td deleted file mode 100644 index 8507b1ff225..00000000000 --- a/llvm/tools/llvmc/src/AutoGenerated.td +++ /dev/null @@ -1,17 +0,0 @@ -//===- AutoGenerated.td - LLVMC 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 llvmc. -// -//===----------------------------------------------------------------------===// - -include "llvm/CompilerDriver/Common.td" - -include "Base.td" -include "Clang.td" diff --git a/llvm/tools/llvmc/src/Base.td.in b/llvm/tools/llvmc/src/Base.td.in deleted file mode 100644 index 84e39e756e6..00000000000 --- a/llvm/tools/llvmc/src/Base.td.in +++ /dev/null @@ -1,461 +0,0 @@ -//===- Base.td - LLVMC 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 llvmc. -// -//===----------------------------------------------------------------------===// - -// Options - -def OptList : OptionList<[ - (switch_option "emit-llvm", - (help "Emit LLVM .ll files instead of native object files")), - (switch_option "E", - (help "Stop after the preprocessing stage, do not run the compiler")), - (switch_option "fsyntax-only", - (help "Stop after checking the input for syntax errors")), - (switch_option "opt", - (help "Enable opt")), - (switch_option "O0", - (help "Turn off optimization"), (zero_or_more)), - (switch_option "O1", - (help "Optimization level 1"), (zero_or_more)), - (switch_option "O2", - (help "Optimization level 2"), (zero_or_more)), - (switch_option "O3", - (help "Optimization level 3"), (zero_or_more)), - (switch_option "S", - (help "Stop after compilation, do not assemble")), - (switch_option "c", - (help "Compile and assemble, but do not link")), - (switch_option "m32", - (help "Generate code for a 32-bit environment"), (hidden)), - (switch_option "m64", - (help "Generate code for a 64-bit environment"), (hidden)), - (switch_option "fPIC", - (help "Relocation model: PIC"), (hidden)), - (switch_option "mdynamic-no-pic", - (help "Relocation model: dynamic-no-pic"), (hidden)), - (parameter_option "linker", - (help "Choose linker (possible values: gcc, g++)")), - (parameter_option "mtune", - (help "Target a specific CPU type"), (forward_not_split)), - (parameter_list_option "march", - (help "Generate code for the specified machine type")), - (parameter_option "mcpu", - (help "A deprecated synonym for -mtune"), (hidden), (forward_not_split)), - (parameter_option "mfpu", - (help "Specify type of floating point unit"), - (hidden), (forward_not_split)), - (parameter_option "mabi", - (help "Generate code for the specified ABI"), (hidden)), - (parameter_option "mfloat-abi", - (help "Specifies which floating-point ABI to use"), (hidden)), - (switch_option "mfix-and-continue", - (help "Needed by gdb to load .o files dynamically"), (hidden)), - (parameter_option "MF", - (help "Specify a file to write dependencies to"), (hidden)), - (parameter_list_option "MT", - (help "Change the name of the rule emitted by dependency generation"), - (hidden)), - (parameter_list_option "include", - (help "Include the named file prior to preprocessing")), - (parameter_list_option "iquote", - (help "Search dir only for files requested with #inlcude \"file\""), - (hidden)), - (prefix_list_option "I", - (help "Add a directory to include path")), - (prefix_list_option "D", - (help "Define a macro")), - (parameter_list_option "Xpreprocessor", (hidden), - (help "Pass options to preprocessor")), - (prefix_list_option "Wa,", (comma_separated), - (help "Pass options to assembler")), - (parameter_list_option "Xassembler", (hidden), - (help "Pass options to assembler")), - (prefix_list_option "Wllc,", (comma_separated), - (help "Pass options to llc")), - (prefix_list_option "Wl,", - (help "Pass options to linker")), - (parameter_list_option "Xlinker", (hidden), - (help "Pass options to linker")), - (prefix_list_option "Wo,", (comma_separated), - (help "Pass options to opt")), - (prefix_list_option "m", - (help "Enable or disable various extensions (-mmmx, -msse, etc.)"), - (hidden)) -]>; - -def LinkerOptList : OptionList<[ - (prefix_list_option "L", - (help "Add a directory to link path")), - (prefix_list_option "l", - (help "Search a library when linking")), - (parameter_option "filelist", (hidden), - (help "Link the files listed in file")), - (switch_option "nostartfiles", - (help "Do not use the standard system startup files when linking"), - (hidden)), - (switch_option "nodefaultlibs", - (help "Do not use the standard system libraries when linking"), (hidden)), - (switch_option "nostdlib", - (help - "Do not use the standard system startup files or libraries when linking"), - (hidden)), - (switch_option "pie", - (help "Produce a position independent executable"), (hidden)), - (switch_option "rdynamic", - (help "Add all symbols to the dynamic export table"), (hidden)), - (switch_option "s", - (help "Strip all symbols"), (hidden)), - (switch_option "static", - (help "Do not link against shared libraries"), (hidden)), - (switch_option "static-libgcc", - (help "Use static libgcc"), (hidden)), - (switch_option "shared", - (help "Create a DLL instead of the regular executable")), - (switch_option "shared-libgcc", - (help "Use shared libgcc"), (hidden)), - (parameter_option "T", - (help "Read linker script"), (hidden)), - (parameter_option "u", - (help "Start with undefined reference to SYMBOL"), (hidden)), - (switch_option "pthread", - (help "Enable threads")), - - // TODO: Add a conditional compilation mechanism to make Darwin-only options - // like '-arch' really Darwin-only. - (parameter_option "arch", - (help "Compile for the specified target architecture"), (hidden)), - (prefix_list_option "F", - (help "Add a directory to framework search path")), - (parameter_list_option "framework", - (help "Specifies a framework to link against")), - (parameter_list_option "weak_framework", - (help "Specifies a framework to weakly link against"), (hidden)), - (switch_option "dynamiclib", (hidden), - (help "Produce a dynamic library")), - (switch_option "prebind", (hidden), - (help "Prebind all undefined symbols")), - (switch_option "dead_strip", (hidden), - (help "Remove unreachable blocks of code")), - (switch_option "single_module", (hidden), - (help "Build the library so it contains only one module")), - (parameter_option "install_name", (hidden), - (help "File name the library will be installed in")), - (parameter_option "compatibility_version", (hidden), - (help "Compatibility version number")), - (parameter_option "current_version", (hidden), - (help "Current version number")) -]>; - -// Option preprocessor. - -def Preprocess : OptionPreprocessor< -(case (not (any_switch_on "O0", "O1", "O2", "O3")), - (set_option "O2"), - (and (switch_on "O3"), (any_switch_on "O0", "O1", "O2")), - (unset_option "O0", "O1", "O2"), - (and (switch_on "O2"), (any_switch_on "O0", "O1")), - (unset_option "O0", "O1"), - (switch_on "O1", "O0"), - (unset_option "O0")) ->; - -// Tools - -class llvm_gcc_based <string cmd, string in_lang, string E_ext, dag out_lang, - string out_ext> : Tool< -[(in_language in_lang), - out_lang, - (output_suffix out_ext), - (command cmd), - (actions - (case - (and (not_empty "o"), - (multiple_input_files), (or (switch_on "S"), (switch_on "c"))), - (error "cannot specify -o with -c or -S with multiple files"), - (switch_on "E"), - [(forward "E"), (stop_compilation), (output_suffix E_ext)], - (and (switch_on "E"), (empty "o")), (no_out_file), - - // ('-emit-llvm') && !('opt') -> stop compilation - (and (switch_on "emit-llvm"), (not (switch_on "opt"))), - (stop_compilation), - // ('-S' && '-emit-llvm') && !('opt') -> output .ll - (and (switch_on "emit-llvm", "S"), (not (switch_on "opt"))), - [(forward "S"), (output_suffix "ll")], - // Usually just output .bc - (not (switch_on "fsyntax-only")), - [(append_cmd "-c"), (append_cmd "-emit-llvm")], - - // -fsyntax-only - (switch_on "fsyntax-only"), [(forward "fsyntax-only"), - (no_out_file), (stop_compilation)], - - // Forwards - (not_empty "Xpreprocessor"), (forward "Xpreprocessor"), - (not_empty "include"), (forward "include"), - (not_empty "iquote"), (forward "iquote"), - (not_empty "save-temps"), (append_cmd "-save-temps"), - (not_empty "I"), (forward "I"), - (not_empty "F"), (forward "F"), - (not_empty "D"), (forward "D"), - (not_empty "arch"), (forward "arch"), - (not_empty "march"), (forward "march"), - (not_empty "mcpu"), (forward "mcpu"), - (not_empty "mtune"), (forward "mtune"), - (not_empty "mfpu"), (forward "mfpu"), - (not_empty "mabi"), (forward "mabi"), - (not_empty "mfloat-abi"), (forward "mfloat-abi"), - (not_empty "m"), (forward "m"), - (switch_on "mfix-and-continue"), (forward "mfix-and-continue"), - (switch_on "m32"), (forward "m32"), - (switch_on "m64"), (forward "m64"), - (switch_on "O0"), (forward "O0"), - (switch_on "O1"), (forward "O1"), - (switch_on "O2"), (forward "O2"), - (switch_on "O3"), (forward "O3"), - (switch_on "fPIC"), (forward "fPIC"), - (switch_on "mdynamic-no-pic"), (forward "mdynamic-no-pic"), - (not_empty "MF"), (forward "MF"), - (not_empty "MT"), (forward "MT"))), - (sink) -]>; - -class llvm_gcc_comp_based <string cmd, string in_lang, string E_ext> -: llvm_gcc_based<cmd, in_lang, E_ext, - (out_language "llvm-bitcode", "object-code"), "bc">; - -class llvm_gcc_pch_based <string cmd, string in_lang, string E_ext> -: llvm_gcc_based<cmd, in_lang, E_ext, - (out_language "precompiled-header"), "gch">; - -def llvm_gcc_c : llvm_gcc_comp_based - <"@LLVMGCCCOMMAND@ -x c", "c", "i">; -def llvm_gcc_cpp : llvm_gcc_comp_based - <"@LLVMGXXCOMMAND@ -x c++", "c++", "i">; -def llvm_gcc_m : llvm_gcc_comp_based - <"@LLVMGCCCOMMAND@ -x objective-c", "objective-c", "mi">; -def llvm_gcc_mxx : llvm_gcc_comp_based - <"@LLVMGCCCOMMAND@ -x objective-c++", "objective-c++", "mi">; - -def llvm_gcc_c_pch : llvm_gcc_pch_based - <"@LLVMGCCCOMMAND@ -x c-header", "c-header", "i">; -def llvm_gcc_cpp_pch : llvm_gcc_pch_based - <"@LLVMGXXCOMMAND@ -x c++-header", "c++-header", "i">; -def llvm_gcc_m_pch : llvm_gcc_pch_based - <"@LLVMGCCCOMMAND@ -x objective-c-header", "objective-c-header", "mi">; -def llvm_gcc_mxx_pch : llvm_gcc_pch_based - <"@LLVMGCCCOMMAND@ -x objective-c++-header", "objective-c++-header", "mi">; - -def opt : Tool< -[(in_language "llvm-bitcode"), - (out_language "llvm-bitcode"), - (output_suffix "opt.bc"), - (actions (case (switch_on "emit-llvm"), (stop_compilation), - (switch_on "emit-llvm", "S"), - [(append_cmd "-S"), (output_suffix "ll")], - (not_empty "Wo,"), (forward_value "Wo,"), - (switch_on "O1"), (forward "O1"), - (switch_on "O2"), (forward "O2"), - (switch_on "O3"), (forward "O3"))), - (command "opt -f") -]>; - -def llvm_as : Tool< -[(in_language "llvm-assembler"), - (out_language "llvm-bitcode"), - (output_suffix "bc"), - (command "llvm-as"), - (actions (case (and (switch_on "emit-llvm"), (not (switch_on "opt"))), - (stop_compilation))) -]>; - -def llvm_gcc_assembler : Tool< -[(in_language "assembler"), - (out_language "object-code"), - (output_suffix "o"), - (command "@LLVMGCCCOMMAND@ -c -x assembler"), - (actions (case - (switch_on "c"), (stop_compilation), - (not_empty "arch"), (forward "arch"), - (not_empty "Xassembler"), (forward "Xassembler"), - (not_empty "march"), (forward "march"), - (not_empty "mcpu"), (forward "mcpu"), - (not_empty "mtune"), (forward "mtune"), - (not_empty "mabi"), (forward "mabi"), - (not_empty "mfloat-abi"), (forward "mfloat-abi"), - (switch_on "m32"), (forward "m32"), - (switch_on "m64"), (forward "m64"), - (not_empty "Wa,"), (forward "Wa,"))) -]>; - -def llc : Tool< -[(in_language "llvm-bitcode", "llvm-assembler"), - (out_language "assembler"), - (output_suffix "s"), - (command "llc -disable-cfi"), - (actions (case - (switch_on "S"), (stop_compilation), - (switch_on "O0"), (forward "O0"), - (switch_on "O1"), (forward "O1"), - (switch_on "O2"), (forward "O2"), - (switch_on "O3"), (forward "O3"), - (switch_on "fPIC"), (append_cmd "-relocation-model=pic"), - (switch_on "mdynamic-no-pic"), - (append_cmd "-relocation-model=dynamic-no-pic"), - (not_empty "march"), (forward_transformed_value - "march", "ConvertMArchToMAttr"), - (not_empty "mcpu"), (forward_transformed_value "mcpu", "ConvertMCpu"), - (and (not_empty "mtune"), (empty "mcpu")), - (forward_as "mtune", "-mcpu"), - (not_empty "mfpu"), (forward_transformed_value "mfpu", "ConvertMFpu"), - (not_empty "m"), (forward_transformed_value "m", "ConvertToMAttr"), - (not_empty "Wllc,"), (forward_value "Wllc,"))) -]>; - -// Base class for linkers -class llvm_gcc_based_linker <string cmd, dag on_empty> : Tool< -[(in_language "object-code", "static-library", "dynamic-library"), - (out_language "executable"), - (output_suffix "out"), - (command cmd), - (works_on_empty (case (and (not_empty "filelist"), on_empty), true, - (default), false)), - (join), - (actions (case - (switch_on "pthread"), (append_cmd "-lpthread"), - (not_empty "L"), (forward "L"), - (not_empty "F"), (forward "F"), - (not_empty "arch"), (forward "arch"), - (not_empty "framework"), (forward "framework"), - (not_empty "weak_framework"), (forward "weak_framework"), - (not_empty "filelist"), (forward "filelist"), - (not_empty "march"), (forward "march"), - (not_empty "mcpu"), (forward "mcpu"), - (not_empty "mtune"), (forward "mtune"), - (not_empty "mabi"), (forward "mabi"), - (not_empty "mfloat-abi"), (forward "mfloat-abi"), - (switch_on "m32"), (forward "m32"), - (switch_on "m64"), (forward "m64"), - (not_empty "l"), (forward "l"), - (not_empty "Xlinker"), (forward "Xlinker"), - (not_empty "Wl,"), (forward "Wl,"), - (switch_on "nostartfiles"), (forward "nostartfiles"), - (switch_on "nodefaultlibs"), (forward "nodefaultlibs"), - (switch_on "nostdlib"), (forward "nostdlib"), - (switch_on "pie"), (forward "pie"), - (switch_on "rdynamic"), (forward "rdynamic"), - (switch_on "s"), (forward "s"), - (switch_on "static"), (forward "static"), - (switch_on "static-libgcc"), (forward "static-libgcc"), - (switch_on "shared"), (forward "shared"), - (switch_on "shared-libgcc"), (forward "shared-libgcc"), - (not_empty "T"), (forward "T"), - (not_empty "u"), (forward "u"), - (switch_on "dynamiclib"), (forward "dynamiclib"), - (switch_on "prebind"), (forward "prebind"), - (switch_on "dead_strip"), (forward "dead_strip"), - (switch_on "single_module"), (forward "single_module"), - (not_empty "compatibility_version"), - (forward "compatibility_version"), - (not_empty "current_version"), (forward "current_version"), - (not_empty "install_name"), (forward "install_name"))) -]>; - -// Default linker -def llvm_gcc_linker : llvm_gcc_based_linker<"@LLVMGCCCOMMAND@", - (not (or (parameter_equals "linker", "g++"), - (parameter_equals "linker", "c++")))>; -// Alternative linker for C++ -def llvm_gcc_cpp_linker : llvm_gcc_based_linker<"@LLVMGXXCOMMAND@", - (or (parameter_equals "linker", "g++"), - (parameter_equals "linker", "c++"))>; - -// Language map - -def LanguageMap : LanguageMap<[ - (lang_to_suffixes "precompiled-header", ["gch", "pch"]), - (lang_to_suffixes "c++", ["cc", "cp", "cxx", "cpp", "CPP", "c++", "C"]), - (lang_to_suffixes "c++-header", "hpp"), - (lang_to_suffixes "c", "c"), - (lang_to_suffixes "c-header", "h"), - (lang_to_suffixes "c-cpp-output", "i"), - (lang_to_suffixes "objective-c-cpp-output", "mi"), - (lang_to_suffixes "objective-c++", "mm"), - (lang_to_suffixes "objective-c++-header", "hmm"), - (lang_to_suffixes "objective-c", "m"), - (lang_to_suffixes "objective-c-header", "hm"), - (lang_to_suffixes "assembler", "s"), - (lang_to_suffixes "assembler-with-cpp", "S"), - (lang_to_suffixes "llvm-assembler", "ll"), - (lang_to_suffixes "llvm-bitcode", "bc"), - (lang_to_suffixes "object-code", ["o", "*empty*"]), - (lang_to_suffixes "static-library", ["a", "lib"]), - (lang_to_suffixes "dynamic-library", ["so", "dylib", "dll"]), - (lang_to_suffixes "executable", "out") -]>; - -// Compilation graph - -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", "llc"), - - (edge "root", "llvm_gcc_c_pch"), - (edge "root", "llvm_gcc_cpp_pch"), - (edge "root", "llvm_gcc_m_pch"), - (edge "root", "llvm_gcc_mxx_pch"), - - (edge "llvm_gcc_c", "llc"), - (edge "llvm_gcc_cpp", "llc"), - (edge "llvm_gcc_m", "llc"), - (edge "llvm_gcc_mxx", "llc"), - (edge "llvm_as", "llc"), - - (optional_edge "root", "llvm_as", - (case (or (switch_on "emit-llvm"), - (switch_on "opt")), (inc_weight))), - (optional_edge "llvm_gcc_c", "opt", - (case (switch_on "opt"), (inc_weight))), - (optional_edge "llvm_gcc_cpp", "opt", - (case (switch_on "opt"), (inc_weight))), - (optional_edge "llvm_gcc_m", "opt", - (case (switch_on "opt"), (inc_weight))), - (optional_edge "llvm_gcc_mxx", "opt", - (case (switch_on "opt"), (inc_weight))), - (optional_edge "llvm_as", "opt", - (case (switch_on "opt"), (inc_weight))), - (edge "opt", "llc"), - - (edge "llc", "llvm_gcc_assembler"), - (edge "llvm_gcc_assembler", "llvm_gcc_linker"), - (optional_edge "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"), - (optional_edge "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))) -]>; diff --git a/llvm/tools/llvmc/src/CMakeLists.txt b/llvm/tools/llvmc/src/CMakeLists.txt deleted file mode 100644 index e6c8917748b..00000000000 --- a/llvm/tools/llvmc/src/CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ -set(LLVMGCCCOMMAND llvm-gcc) -set(LLVMGXXCOMMAND llvm-g++) - -configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/Base.td.in - ${CMAKE_CURRENT_BINARY_DIR}/Base.td - @ONLY) - -set(LLVM_TARGET_DEFINITIONS AutoGenerated.td) - -tablegen(AutoGenerated.inc -gen-llvmc) - -set(LLVM_USED_LIBS CompilerDriver) -set(LLVM_LINK_COMPONENTS support) - -add_llvm_tool(llvmc - Hooks.cpp - Main.cpp - ) diff --git a/llvm/tools/llvmc/src/Clang.td b/llvm/tools/llvmc/src/Clang.td deleted file mode 100644 index e2d32e88ff2..00000000000 --- a/llvm/tools/llvmc/src/Clang.td +++ /dev/null @@ -1,87 +0,0 @@ -//===- Clang.td - LLVMC 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 llvmc. -// -//===----------------------------------------------------------------------===// - - -def Options : OptionList<[ -(switch_option "clang", (help "Use Clang instead of llvm-gcc")) -]>; - -class clang_based<string language, string cmd, string ext_E> : Tool< -[(in_language language), - (out_language "llvm-bitcode"), - (output_suffix "bc"), - (command cmd), - (actions (case (switch_on "E"), - [(forward "E"), (stop_compilation), (output_suffix ext_E)], - (and (switch_on "E"), (empty "o")), (no_out_file), - (switch_on "fsyntax-only"), (stop_compilation), - (switch_on "S", "emit-llvm"), - [(append_cmd "-emit-llvm"), - (stop_compilation), (output_suffix "ll")], - (not (switch_on "S", "emit-llvm")), - (append_cmd "-emit-llvm-bc"), - (switch_on "c", "emit-llvm"), - (stop_compilation), - (not_empty "include"), (forward "include"), - (not_empty "I"), (forward "I"))), - (sink) -]>; - -def clang_c : clang_based<"c", "clang -x c", "i">; -def clang_cpp : clang_based<"c++", "clang -x c++", "i">; -def clang_objective_c : clang_based<"objective-c", - "clang -x objective-c", "mi">; -def clang_objective_cpp : clang_based<"objective-c++", - "clang -x objective-c++", "mi">; - -def as : Tool< -[(in_language "assembler"), - (out_language "object-code"), - (output_suffix "o"), - (command "as"), - (actions (case (not_empty "Wa,"), (forward_value "Wa,"), - (switch_on "c"), (stop_compilation))) -]>; - -// Default linker -def llvm_ld : Tool< -[(in_language "object-code"), - (out_language "executable"), - (output_suffix "out"), - (command "llvm-ld -native -disable-internalize"), - (actions (case - (switch_on "pthread"), (append_cmd "-lpthread"), - (not_empty "L"), (forward "L"), - (not_empty "l"), (forward "l"), - (not_empty "Wl,"), (forward_value "Wl,"))), - (join) -]>; - -// Compilation graph - -def ClangCompilationGraph : CompilationGraph<[ - (optional_edge "root", "clang_c", - (case (switch_on "clang"), (inc_weight))), - (optional_edge "root", "clang_cpp", - (case (switch_on "clang"), (inc_weight))), - (optional_edge "root", "clang_objective_c", - (case (switch_on "clang"), (inc_weight))), - (optional_edge "root", "clang_objective_cpp", - (case (switch_on "clang"), (inc_weight))), - (edge "clang_c", "llc"), - (edge "clang_cpp", "llc"), - (edge "clang_objective_c", "llc"), - (edge "clang_objective_cpp", "llc"), - (optional_edge "llc", "as", (case (switch_on "clang"), (inc_weight))), - (edge "as", "llvm_ld") -]>; diff --git a/llvm/tools/llvmc/src/Hooks.cpp b/llvm/tools/llvmc/src/Hooks.cpp deleted file mode 100644 index ddad08a1b4c..00000000000 --- a/llvm/tools/llvmc/src/Hooks.cpp +++ /dev/null @@ -1,193 +0,0 @@ -#include "llvm/ADT/StringMap.h" - -#include <string> -#include <vector> - -namespace hooks { - -/// NUM_KEYS - Calculate the size of a const char* array. -#define NUM_KEYS(Keys) sizeof(Keys) / sizeof(const char*) - -// See http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2 -inline unsigned NextHighestPowerOf2 (unsigned i) { - --i; - i |= i >> 1; - i |= i >> 2; - i |= i >> 4; - i |= i >> 8; - i |= i >> 16; - ++i; - return i; -} - -typedef std::vector<std::string> StrVec; -typedef llvm::StringMap<const char*> ArgMap; - -/// AddPlusOrMinus - Convert 'no-foo' to '-foo' and 'foo' to '+foo'. -void AddPlusOrMinus (const std::string& Arg, std::string& out) { - if (Arg.find("no-") == 0 && Arg[3] != 0) { - out += '-'; - out += Arg.c_str() + 3; - } - else { - out += '+'; - out += Arg; - } -} - -// -march values that need to be special-cased. -const char* MArchKeysARM[] = { "armv4t", "armv5t", "armv5te", "armv6", - "armv6-m", "armv6t2", "armv7-a", "armv7-m" }; -const char* MArchValuesARM[] = { "v4t", "v5t", "v5te", "v6", "v6m", "v6t2", - "v7a", "v7m" }; -const unsigned MArchNumKeysARM = NUM_KEYS(MArchKeysARM); -const unsigned MArchMapSize = NextHighestPowerOf2(MArchNumKeysARM); - -// -march values that should be forwarded as -mcpu -const char* MArchMCpuKeysARM[] = { "iwmmxt", "ep9312" }; -const char* MArchMCpuValuesARM[] = { "iwmmxt", "ep9312"}; -const unsigned MArchMCpuNumKeysARM = NUM_KEYS(MArchMCpuKeysARM); - - -void FillInArgMap(ArgMap& Args, const char* Keys[], - const char* Values[], unsigned NumKeys) -{ - for (unsigned i = 0; i < NumKeys; ++i) { - // Explicit cast to StringRef here is necessary to pick up the right - // overload. - Args.GetOrCreateValue(llvm::StringRef(Keys[i]), Values[i]); - } -} - -/// ConvertMArchToMAttr - Convert -march from the gcc dialect to -/// something llc can understand. -std::string ConvertMArchToMAttr(const StrVec& Opts) { - static ArgMap MArchMap(MArchMapSize); - static ArgMap MArchMCpuMap(MArchMapSize); - static bool StaticDataInitialized = false; - - if (!StaticDataInitialized) { - FillInArgMap(MArchMap, MArchKeysARM, MArchValuesARM, MArchNumKeysARM); - FillInArgMap(MArchMCpuMap, MArchMCpuKeysARM, - MArchMCpuValuesARM, MArchMCpuNumKeysARM); - StaticDataInitialized = true; - } - - std::string mattr("-mattr="); - std::string mcpu("-mcpu="); - bool mattrTouched = false; - bool mcpuTouched = false; - - for (StrVec::const_iterator B = Opts.begin(), E = Opts.end(); B!=E; ++B) { - const std::string& Arg = *B; - - // Check if the argument should be forwarded to -mcpu instead of -mattr. - { - ArgMap::const_iterator I = MArchMCpuMap.find(Arg); - - if (I != MArchMCpuMap.end()) { - mcpuTouched = true; - mcpu += I->getValue(); - continue; - } - } - - if (mattrTouched) - mattr += ","; - - // Check if the argument is a special case. - { - ArgMap::const_iterator I = MArchMap.find(Arg); - - if (I != MArchMap.end()) { - mattrTouched = true; - mattr += '+'; - mattr += I->getValue(); - continue; - } - } - - AddPlusOrMinus(Arg, mattr); - } - - std::string out; - if (mattrTouched) - out += mattr; - if (mcpuTouched) - out += (mattrTouched ? " " : "") + mcpu; - - return out; -} - -// -mcpu values that need to be special-cased. -const char* MCpuKeysPPC[] = { "G3", "G4", "G5", "powerpc", "powerpc64"}; -const char* MCpuValuesPPC[] = { "g3", "g4", "g5", "ppc", "ppc64"}; -const unsigned MCpuNumKeysPPC = NUM_KEYS(MCpuKeysPPC); -const unsigned MCpuMapSize = NextHighestPowerOf2(MCpuNumKeysPPC); - -/// ConvertMCpu - Convert -mcpu value from the gcc to the llc dialect. -std::string ConvertMCpu(const char* Val) { - static ArgMap MCpuMap(MCpuMapSize); - static bool StaticDataInitialized = false; - - if (!StaticDataInitialized) { - FillInArgMap(MCpuMap, MCpuKeysPPC, MCpuValuesPPC, MCpuNumKeysPPC); - StaticDataInitialized = true; - } - - std::string ret = "-mcpu="; - ArgMap::const_iterator I = MCpuMap.find(Val); - if (I != MCpuMap.end()) { - return ret + I->getValue(); - } - return ret + Val; -} - -// -mfpu values that need to be special-cased. -const char* MFpuKeysARM[] = { "vfp", "vfpv3", - "vfpv3-fp16", "vfpv3-d16", "vfpv3-d16-fp16", - "neon", "neon-fp16" }; -const char* MFpuValuesARM[] = { "vfp2", "vfp3", - "+vfp3,+fp16", "+vfp3,+d16", "+vfp3,+d16,+fp16", - "+neon", "+neon,+neonfp" }; -const unsigned MFpuNumKeysARM = NUM_KEYS(MFpuKeysARM); -const unsigned MFpuMapSize = NextHighestPowerOf2(MFpuNumKeysARM); - -/// ConvertMFpu - Convert -mfpu value from the gcc to the llc dialect. -std::string ConvertMFpu(const char* Val) { - static ArgMap MFpuMap(MFpuMapSize); - static bool StaticDataInitialized = false; - - if (!StaticDataInitialized) { - FillInArgMap(MFpuMap, MFpuKeysARM, MFpuValuesARM, MFpuNumKeysARM); - StaticDataInitialized = true; - } - - std::string ret = "-mattr="; - ArgMap::const_iterator I = MFpuMap.find(Val); - if (I != MFpuMap.end()) { - return ret + I->getValue(); - } - return ret + '+' + Val; -} - -/// ConvertToMAttr - Convert '-mfoo' and '-mno-bar' to '-mattr=+foo,-bar'. -std::string ConvertToMAttr(const StrVec& Opts) { - std::string out("-mattr="); - bool firstIter = true; - - for (StrVec::const_iterator B = Opts.begin(), E = Opts.end(); B!=E; ++B) { - const std::string& Arg = *B; - - if (firstIter) - firstIter = false; - else - out += ","; - - AddPlusOrMinus(Arg, out); - } - - return out; -} - -} diff --git a/llvm/tools/llvmc/src/Main.cpp b/llvm/tools/llvmc/src/Main.cpp deleted file mode 100644 index 9f9c71aa8c3..00000000000 --- a/llvm/tools/llvmc/src/Main.cpp +++ /dev/null @@ -1,16 +0,0 @@ -//===--- Main.cpp - The LLVM Compiler Driver -------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open -// Source License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// Just include AutoGenerated.inc and CompilerDriver/Main.inc. -// -//===----------------------------------------------------------------------===// - -#include "AutoGenerated.inc" - -#include "llvm/CompilerDriver/Main.inc" diff --git a/llvm/tools/llvmc/src/Makefile b/llvm/tools/llvmc/src/Makefile deleted file mode 100644 index f3f30911a40..00000000000 --- a/llvm/tools/llvmc/src/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -##===- tools/llvmc/src/Makefile ----------------------------*- Makefile -*-===## -# -# The LLVM Compiler Infrastructure -# -# This file is distributed under the University of Illinois Open -# Source License. See LICENSE.TXT for details. -# -##===----------------------------------------------------------------------===## - -LEVEL = ../../.. -LLVMC_BASED_DRIVER = llvmc -BUILT_SOURCES = AutoGenerated.inc - -include $(LEVEL)/Makefile.common |

