From 576e6bc9fb282b8f8371deb059b97ef842a62fa5 Mon Sep 17 00:00:00 2001 From: Nico Weber Date: Wed, 19 Dec 2018 20:19:58 +0000 Subject: [PATCH] Revert 349677, it contained a whole bunch of stuff I did not mean to commit git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349678 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/llvm-ar/CMakeLists.txt | 3 + tools/llvm-bcanalyzer/CMakeLists.txt | 3 + .../llvm-demangle-fuzzer/llvm-demangle-fuzzer.cpp | 18 +--- utils/gn/secondary/BUILD.gn | 1 - .../secondary/clang/include/clang/Basic/BUILD.gn | 109 --------------------- .../secondary/clang/include/clang/Config/BUILD.gn | 84 ---------------- utils/gn/secondary/clang/lib/ARCMigrate/enable.gni | 4 - utils/gn/secondary/clang/lib/Basic/BUILD.gn | 82 ---------------- .../clang/lib/StaticAnalyzer/Frontend/enable.gni | 4 - utils/gn/secondary/clang/utils/TableGen/BUILD.gn | 19 ---- .../clang/utils/TableGen/clang_tablegen.gni | 41 -------- utils/gn/secondary/lld/include/lld/Common/BUILD.gn | 1 + .../gn/secondary/llvm/utils/TableGen/tablegen.gni | 8 +- utils/lit/lit/TestRunner.py | 19 +--- utils/lit/lit/run.py | 47 --------- 15 files changed, 19 insertions(+), 424 deletions(-) delete mode 100644 utils/gn/secondary/clang/include/clang/Basic/BUILD.gn delete mode 100644 utils/gn/secondary/clang/include/clang/Config/BUILD.gn delete mode 100644 utils/gn/secondary/clang/lib/ARCMigrate/enable.gni delete mode 100644 utils/gn/secondary/clang/lib/Basic/BUILD.gn delete mode 100644 utils/gn/secondary/clang/lib/StaticAnalyzer/Frontend/enable.gni delete mode 100644 utils/gn/secondary/clang/utils/TableGen/BUILD.gn delete mode 100644 utils/gn/secondary/clang/utils/TableGen/clang_tablegen.gni diff --git a/tools/llvm-ar/CMakeLists.txt b/tools/llvm-ar/CMakeLists.txt index 5cbdc110543..191c684d524 100644 --- a/tools/llvm-ar/CMakeLists.txt +++ b/tools/llvm-ar/CMakeLists.txt @@ -10,6 +10,9 @@ set(LLVM_LINK_COMPONENTS add_llvm_tool(llvm-ar llvm-ar.cpp + + DEPENDS + intrinsics_gen ) add_llvm_tool_symlink(llvm-ranlib llvm-ar) diff --git a/tools/llvm-bcanalyzer/CMakeLists.txt b/tools/llvm-bcanalyzer/CMakeLists.txt index 369f469af85..15d51ee7a9d 100644 --- a/tools/llvm-bcanalyzer/CMakeLists.txt +++ b/tools/llvm-bcanalyzer/CMakeLists.txt @@ -5,4 +5,7 @@ set(LLVM_LINK_COMPONENTS add_llvm_tool(llvm-bcanalyzer llvm-bcanalyzer.cpp + + DEPENDS + intrinsics_gen ) diff --git a/tools/llvm-demangle-fuzzer/llvm-demangle-fuzzer.cpp b/tools/llvm-demangle-fuzzer/llvm-demangle-fuzzer.cpp index 017e85aabf6..07c290a0be5 100644 --- a/tools/llvm-demangle-fuzzer/llvm-demangle-fuzzer.cpp +++ b/tools/llvm-demangle-fuzzer/llvm-demangle-fuzzer.cpp @@ -14,19 +14,11 @@ #include extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { - if (Size == 0) - return 0; - - bool UseItanium = Data[0] < 128; - std::string NullTerminatedString((const char *)Data + 1, Size - 1); - - if (UseItanium) { - free(llvm::itaniumDemangle(NullTerminatedString.c_str(), nullptr, nullptr, - nullptr)); - } else { - free(llvm::microsoftDemangle(NullTerminatedString.c_str(), nullptr, nullptr, - nullptr)); - } + std::string NullTerminatedString((const char *)Data, Size); + int status = 0; + if (char *demangle = llvm::itaniumDemangle(NullTerminatedString.c_str(), nullptr, + nullptr, &status)) + free(demangle); return 0; } diff --git a/utils/gn/secondary/BUILD.gn b/utils/gn/secondary/BUILD.gn index b851010ee65..38716d569a9 100644 --- a/utils/gn/secondary/BUILD.gn +++ b/utils/gn/secondary/BUILD.gn @@ -1,7 +1,6 @@ group("default") { deps = [ ":lld", - "//clang/lib/Basic", "//llvm/tools/llc", "//llvm/tools/llvm-ar:symlinks", "//llvm/tools/llvm-as", diff --git a/utils/gn/secondary/clang/include/clang/Basic/BUILD.gn b/utils/gn/secondary/clang/include/clang/Basic/BUILD.gn deleted file mode 100644 index c064d12f566..00000000000 --- a/utils/gn/secondary/clang/include/clang/Basic/BUILD.gn +++ /dev/null @@ -1,109 +0,0 @@ -import("//clang/utils/TableGen/clang_tablegen.gni") -import("//llvm/version.gni") - -# Version header. - -action("version") { - script = "//llvm/utils/gn/build/write_cmake_config.py" - - sources = [ - "Version.inc.in", - ] - outputs = [ - "$root_gen_dir/clang/include/clang/Basic/Version.inc", - ] - args = [ - "-o", - rebase_path(outputs[0], root_out_dir), - rebase_path(sources[0], root_out_dir), - - "CLANG_VERSION=$llvm_version", - "CLANG_VERSION_MAJOR=$llvm_version_major", - "CLANG_VERSION_MINOR=$llvm_version_minor", - "CLANG_VERSION_PATCHLEVEL=$llvm_version_patch", - ] -} - -# Diagnostics. - -diag_groups = [ - "Analysis", - "AST", - "Comment", - "Common", - "CrossTU", - "Driver", - "Frontend", - "Lex", - "Parse", - "Refactoring", - "Sema", - "Serialization", -] -foreach(diag_group, diag_groups) { - clang_tablegen("Diagnostic${diag_group}Kinds") { - args = [ - "-gen-clang-diags-defs", - "-clang-component=${diag_group}", - ] - td_file = "Diagnostic.td" - } -} -group("diags_tablegen") { - # DiagnosticGroups and DiagnosticIndexName are intentionally not part of this - # group. Much of clang depends on the DiagKinds.inc files transitively, - # but almost nothing needs DiagnosticGroups.inc or DiagnosticIndexName.inc. - public_deps = [] - foreach(diag_group, diag_groups) { - public_deps += [ ":Diagnostic${diag_group}Kinds" ] - } -} - -clang_tablegen("DiagnosticGroups") { - args = [ "-gen-clang-diag-groups" ] - td_file = "Diagnostic.td" -} - -clang_tablegen("DiagnosticIndexName") { - args = [ "-gen-clang-diags-index-name" ] - td_file = "Diagnostic.td" -} - -# Attributes - -clang_tablegen("AttrList") { - args = [ - "-gen-clang-attr-list", - "-I", - rebase_path("../..", root_out_dir), - ] - td_file = "Attr.td" -} - -clang_tablegen("AttrSubMatchRulesList") { - args = [ - "-gen-clang-attr-subject-match-rule-list", - "-I", - rebase_path("../..", root_out_dir), - ] - td_file = "Attr.td" -} - -clang_tablegen("AttrHasAttributeImpl") { - args = [ - "-gen-clang-attr-has-attribute-impl", - "-I", - rebase_path("../..", root_out_dir), - ] - td_file = "Attr.td" -} - -# Misc - -clang_tablegen("arm_neon") { - args = [ "-gen-arm-neon-sema" ] -} - -clang_tablegen("arm_fp16") { - args = [ "-gen-arm-neon-sema" ] -} diff --git a/utils/gn/secondary/clang/include/clang/Config/BUILD.gn b/utils/gn/secondary/clang/include/clang/Config/BUILD.gn deleted file mode 100644 index 0cb130ebaca..00000000000 --- a/utils/gn/secondary/clang/include/clang/Config/BUILD.gn +++ /dev/null @@ -1,84 +0,0 @@ -import("//clang/lib/ARCMigrate/enable.gni") -import("//clang/lib/StaticAnalyzer/Frontend/enable.gni") -import("//llvm/utils/gn/build/libs/xml/enable.gni") -import("//llvm/version.gni") - -config("Config_config") { - visibility = [ ":Config" ] - include_dirs = [ "$target_gen_dir/clang/include" ] -} - -action("Config") { - script = "//llvm/utils/gn/build/write_cmake_config.py" - - sources = [ - "config.h.cmake", - ] - outputs = [ - "$target_gen_dir/config.h", - ] - args = [ - "-o", - rebase_path(outputs[0], root_out_dir), - rebase_path(sources[0], root_out_dir), - - "BUG_REPORT_URL=https://bugs.llvm.org/", - "CLANG_DEFAULT_LINKER=", - "CLANG_DEFAULT_STD_C=", - "CLANG_DEFAULT_STD_CXX=", - "CLANG_DEFAULT_CXX_STDLIB=", - "CLANG_DEFAULT_RTLIB=", - "CLANG_DEFAULT_OBJCOPY=objcopy", - "CLANG_DEFAULT_OPENMP_RUNTIME=libomp", - "CLANG_OPENMP_NVPTX_DEFAULT_ARCH=sm_35", - "CLANG_LIBDIR_SUFFIX=", - "CLANG_RESOURCE_DIR=", - "C_INCLUDE_DIRS=", - "CLANG_CONFIG_FILE_SYSTEM_DIR=", - "CLANG_CONFIG_FILE_USER_DIR=", - "DEFAULT_SYSROOT=", - "GCC_INSTALL_PREFIX=", - "CLANG_ANALYZER_WITH_Z3=", - "BACKEND_PACKAGE_STRING=LLVM ${llvm_version}svn", - "ENABLE_LINKER_BUILD_ID=", - "ENABLE_X86_RELAX_RELOCATIONS=", - "ENABLE_EXPERIMENTAL_NEW_PASS_MANAGER=", - "CLANG_ENABLE_OBJC_REWRITER=1", # FIXME: flag? - ] - - if (clang_enable_arcmt) { - args += [ "CLANG_ENABLE_ARCMT=1" ] - } else { - args += [ "CLANG_ENABLE_ARCMT=" ] - } - - if (clang_enable_static_analyzer) { - args += [ "CLANG_ENABLE_STATIC_ANALYZER=1" ] - } else { - args += [ "CLANG_ENABLE_STATIC_ANALYZER=" ] - } - - if (host_os != "win") { - args += [ "CLANG_HAVE_RLIMITS=1" ] - } else { - args += [ "CLANG_HAVE_RLIMITS=" ] - } - - if (llvm_enable_libxml2) { - args += [ "CLANG_HAVE_LIBXML=1" ] - } else { - args += [ "CLANG_HAVE_LIBXML=" ] - } - - if (host_os == "mac") { - # FIXME: Hardcoding this isn't great, but assuming that the host ld version - # has anything to do with the ld version where the built clang will run - # isn't either. Probably want to make this a declare_args. - args += [ "HOST_LINK_VERSION=305" ] - } else { - args += [ "HOST_LINK_VERSION=" ] - } - - # Let targets depending on this find the generated file. - public_configs = [ ":Config_config" ] -} diff --git a/utils/gn/secondary/clang/lib/ARCMigrate/enable.gni b/utils/gn/secondary/clang/lib/ARCMigrate/enable.gni deleted file mode 100644 index 7a7a42edbfd..00000000000 --- a/utils/gn/secondary/clang/lib/ARCMigrate/enable.gni +++ /dev/null @@ -1,4 +0,0 @@ -declare_args() { - # Whether to include the arc migrate tool in the clang binary. - clang_enable_arcmt = true -} diff --git a/utils/gn/secondary/clang/lib/Basic/BUILD.gn b/utils/gn/secondary/clang/lib/Basic/BUILD.gn deleted file mode 100644 index 60323db120a..00000000000 --- a/utils/gn/secondary/clang/lib/Basic/BUILD.gn +++ /dev/null @@ -1,82 +0,0 @@ -static_library("Basic") { - output_name = "clangBasic" - configs += [ "//llvm/utils/gn/build:clang_code" ] - public_deps = [ - # public_dep because public header Version.h includes generated Version.inc. - "//clang/include/clang/Basic:AttrList", - "//clang/include/clang/Basic:AttrSubMatchRulesList", - "//clang/include/clang/Basic:DiagnosticGroups", - "//clang/include/clang/Basic:diags_tablegen", - "//clang/include/clang/Basic:version", - ] - deps = [ - "//clang/include/clang/Basic:AttrHasAttributeImpl", - "//clang/include/clang/Basic:arm_fp16", - "//clang/include/clang/Basic:arm_neon", - "//clang/include/clang/Config", - "//llvm/include/llvm/Config:llvm-config", - "//llvm/lib/IR", - "//llvm/lib/MC", - "//llvm/lib/Support", - ] - include_dirs = [ "." ] - sources = [ - "Attributes.cpp", - "Builtins.cpp", - "CharInfo.cpp", - "CodeGenOptions.cpp", - "Cuda.cpp", - "Diagnostic.cpp", - "DiagnosticIDs.cpp", - "DiagnosticOptions.cpp", - "FileManager.cpp", - "FileSystemStatCache.cpp", - "FixedPoint.cpp", - "IdentifierTable.cpp", - "LangOptions.cpp", - "MemoryBufferCache.cpp", - "Module.cpp", - "ObjCRuntime.cpp", - "OpenMPKinds.cpp", - "OperatorPrecedence.cpp", - "SanitizerBlacklist.cpp", - "SanitizerSpecialCaseList.cpp", - "Sanitizers.cpp", - "SourceLocation.cpp", - "SourceManager.cpp", - "TargetInfo.cpp", - "Targets.cpp", - "Targets/AArch64.cpp", - "Targets/AMDGPU.cpp", - "Targets/ARC.cpp", - "Targets/ARM.cpp", - "Targets/AVR.cpp", - "Targets/BPF.cpp", - "Targets/Hexagon.cpp", - "Targets/Lanai.cpp", - "Targets/Le64.cpp", - "Targets/MSP430.cpp", - "Targets/Mips.cpp", - "Targets/NVPTX.cpp", - "Targets/Nios2.cpp", - "Targets/OSTargets.cpp", - "Targets/PNaCl.cpp", - "Targets/PPC.cpp", - "Targets/RISCV.cpp", - "Targets/SPIR.cpp", - "Targets/Sparc.cpp", - "Targets/SystemZ.cpp", - "Targets/TCE.cpp", - "Targets/WebAssembly.cpp", - "Targets/X86.cpp", - "Targets/XCore.cpp", - "TokenKinds.cpp", - - # FIXME: This should be in its own target that passes -DHAVE_SVN_VERSION_INC - # and that also depends on a target generating SVNVersion.inc. - "Version.cpp", - "Warnings.cpp", - "XRayInstr.cpp", - "XRayLists.cpp", - ] -} diff --git a/utils/gn/secondary/clang/lib/StaticAnalyzer/Frontend/enable.gni b/utils/gn/secondary/clang/lib/StaticAnalyzer/Frontend/enable.gni deleted file mode 100644 index 75653a96dd0..00000000000 --- a/utils/gn/secondary/clang/lib/StaticAnalyzer/Frontend/enable.gni +++ /dev/null @@ -1,4 +0,0 @@ -declare_args() { - # Whether to include the static analyzer in the clang binary. - clang_enable_static_analyzer = true -} diff --git a/utils/gn/secondary/clang/utils/TableGen/BUILD.gn b/utils/gn/secondary/clang/utils/TableGen/BUILD.gn deleted file mode 100644 index acfcccab6b1..00000000000 --- a/utils/gn/secondary/clang/utils/TableGen/BUILD.gn +++ /dev/null @@ -1,19 +0,0 @@ -executable("clang-tblgen") { - deps = [ - "//llvm/lib/Support", - "//llvm/lib/TableGen", - ] - sources = [ - "ClangASTNodesEmitter.cpp", - "ClangAttrEmitter.cpp", - "ClangCommentCommandInfoEmitter.cpp", - "ClangCommentHTMLNamedCharacterReferenceEmitter.cpp", - "ClangCommentHTMLTagsEmitter.cpp", - "ClangDataCollectorsEmitter.cpp", - "ClangDiagnosticsEmitter.cpp", - "ClangOptionDocEmitter.cpp", - "ClangSACheckersEmitter.cpp", - "NeonEmitter.cpp", - "TableGen.cpp", - ] -} diff --git a/utils/gn/secondary/clang/utils/TableGen/clang_tablegen.gni b/utils/gn/secondary/clang/utils/TableGen/clang_tablegen.gni deleted file mode 100644 index 20706cc952c..00000000000 --- a/utils/gn/secondary/clang/utils/TableGen/clang_tablegen.gni +++ /dev/null @@ -1,41 +0,0 @@ -# This file introduces a templates for running clang-tblgen. -# -# Parameters: -# -# args (required) -# [list of strings] Flags to pass to llvm-tblgen. -# -# output_name (optional) -# Basename of the generated output file. -# Defaults to target name with ".inc" appended. -# -# td_file (optional) -# The .td file to pass to llvm-tblgen. -# Defaults to target name with ".td" appended. -# -# visibility (optional) -# GN's regular visibility attribute, see `gn help visibility`. -# -# Example of usage: -# -# clang_tablegen("DiagnosticGroups") { -# args = [ "-gen-clang-diag-groups" ] -# td_file = "Diagnostic.td" -# } - -import("//llvm/utils/TableGen/tablegen.gni") - -template("clang_tablegen") { - tablegen(target_name) { - forward_variables_from(invoker, - [ - "args", - "output_name", - "td_file", - "visibility", - ]) - - # FIXME: In cross builds, this should depend on the host binary. - tblgen_target = "//clang/utils/TableGen:clang-tblgen" - } -} diff --git a/utils/gn/secondary/lld/include/lld/Common/BUILD.gn b/utils/gn/secondary/lld/include/lld/Common/BUILD.gn index 5c7cd93ba45..b45c04ea67a 100644 --- a/utils/gn/secondary/lld/include/lld/Common/BUILD.gn +++ b/utils/gn/secondary/lld/include/lld/Common/BUILD.gn @@ -12,6 +12,7 @@ action("version") { args = [ "-o", rebase_path(outputs[0], root_out_dir), + rebase_path(sources[0], root_out_dir), "LLD_VERSION=$llvm_version", diff --git a/utils/gn/secondary/llvm/utils/TableGen/tablegen.gni b/utils/gn/secondary/llvm/utils/TableGen/tablegen.gni index 37629235982..ce475f58b21 100644 --- a/utils/gn/secondary/llvm/utils/TableGen/tablegen.gni +++ b/utils/gn/secondary/llvm/utils/TableGen/tablegen.gni @@ -36,12 +36,8 @@ template("tablegen") { action(target_name) { forward_variables_from(invoker, [ "visibility" ]) - if (defined(invoker.tblgen_target)) { - tblgen_target = invoker.tblgen_target - } else { - # FIXME: In cross builds, this should depend on the host binary. - tblgen_target = "//llvm/utils/TableGen:llvm-tblgen" - } + # FIXME: In cross builds, this should depend on the host binary. + tblgen_target = "//llvm/utils/TableGen:llvm-tblgen" tblgen_executable = get_label_info(tblgen_target, "root_out_dir") + "/bin/" + get_label_info(tblgen_target, "name") deps = [ diff --git a/utils/lit/lit/TestRunner.py b/utils/lit/lit/TestRunner.py index 4aa78453a11..4d903b4a6f4 100644 --- a/utils/lit/lit/TestRunner.py +++ b/utils/lit/lit/TestRunner.py @@ -1108,7 +1108,6 @@ def executeScript(test, litConfig, tmpBase, commands, cwd): else: if bashPath: command = [bashPath, script] - #print command, cwd, test.config.environment else: command = ['/bin/sh', script] if litConfig.useValgrind: @@ -1552,30 +1551,22 @@ def _runShTest(test, litConfig, useExternalSh, script, tmpBase): return lit.Test.Result(status, output) -def extractScript(test, litConfig, useExternalSh, extra_substitutions): +def executeShTest(test, litConfig, useExternalSh, + extra_substitutions=[]): if test.config.unsupported: - return lit.Test.Result(Test.UNSUPPORTED, 'Test is unsupported'), '' + return lit.Test.Result(Test.UNSUPPORTED, 'Test is unsupported') script = parseIntegratedTestScript(test) if isinstance(script, lit.Test.Result): - return script, '' + return script if litConfig.noExecute: - return lit.Test.Result(Test.PASS), '' + return lit.Test.Result(Test.PASS) tmpDir, tmpBase = getTempPaths(test) substitutions = list(extra_substitutions) substitutions += getDefaultSubstitutions(test, tmpDir, tmpBase, normalize_slashes=useExternalSh) script = applySubstitutions(script, substitutions) - return script, tmpBase - - -def executeShTest(test, litConfig, useExternalSh, - extra_substitutions=[]): - script, tmpBase = extractScript( - test, litConfig, useExternalSh, extra_substitutions) - if isinstance(script, lit.Test.Result): - return script # Re-run failed tests up to test_retry_attempts times. attempts = 1 diff --git a/utils/lit/lit/run.py b/utils/lit/lit/run.py index 510f9b3474a..c4f9eb2d0fc 100644 --- a/utils/lit/lit/run.py +++ b/utils/lit/lit/run.py @@ -55,52 +55,6 @@ class Run(object): return _execute_test_impl(test, self.lit_config, self.parallelism_semaphores) - def execute_tests_using_ninja(self, jobs, max_time): - import lit.TestRunner - import pipes - sys.path.append('/Users/thakis/src/ninja/misc') - import ninja_syntax - writer = ninja_syntax.Writer(open('lit.ninja', 'w')) - # Writes a build.ninja with commands for all tests and runs ninja - # to execute them. - for i, test in enumerate(self.tests): - if not isinstance(test.config.test_format, lit.formats.ShTest): - test.setResult(lit.Test.Result(lit.Test.PASS, '')) # FIXME - continue - script, tmpBase = lit.TestRunner.extractScript( - test, self.lit_config, True, []) - if isinstance(script, lit.Test.Result): - test.result = script - continue - - # Create the output directory if it does not already exist. - lit.util.mkdir_p(os.path.dirname(tmpBase)) - - r = 'r%04d' % i - # FIXME: duplication with TestRunner.executeScript() - # FIXME: windows - execdir = os.path.dirname(test.getExecPath()) - command = '' - for var, val in test.config.environment.iteritems(): - # Need export, else LLD_VERSION doesn't make it through. - # The export means LIT_PRESERVES_TMP=1 needs to be set while - # running lit, else it's gone by the time ninja runs - # (...or this here must run ninja, probably better anyhoo) - command += 'export %s=%s; ' % (var, pipes.quote(val)) - if test.config.pipefail: - command += 'set -o pipefail; ' - command += 'cd %s; { ' % execdir - command += '; } && { '.join(script) + '; }' - - # FIXME: tests require bash for e.g. `echo -e` -- unfortunate :-/ - command = '/bin/bash -c %s' % pipes.quote(command) - - writer.rule(r, command, description=test.getFullName()) - writer.build('always%04d' % i, r) - - # FIXME: ...well... - test.setResult(lit.Test.Result(lit.Test.PASS, '')) - def execute_tests_in_pool(self, jobs, max_time): # We need to issue many wait calls, so compute the final deadline and # subtract time.time() from that as we go along. @@ -196,7 +150,6 @@ class Run(object): self.consume_test_result(result) else: self.execute_tests_in_pool(jobs, max_time) - #self.execute_tests_using_ninja(jobs, max_time) # Mark any tests that weren't run as UNRESOLVED. for test in self.tests: -- 2.11.0