OSDN Git Service

Revert 349677, it contained a whole bunch of stuff I did not mean to commit
authorNico Weber <nicolasweber@gmx.de>
Wed, 19 Dec 2018 20:19:58 +0000 (20:19 +0000)
committerNico Weber <nicolasweber@gmx.de>
Wed, 19 Dec 2018 20:19:58 +0000 (20:19 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@349678 91177308-0d34-0410-b5e6-96231b3b80d8

15 files changed:
tools/llvm-ar/CMakeLists.txt
tools/llvm-bcanalyzer/CMakeLists.txt
tools/llvm-demangle-fuzzer/llvm-demangle-fuzzer.cpp
utils/gn/secondary/BUILD.gn
utils/gn/secondary/clang/include/clang/Basic/BUILD.gn [deleted file]
utils/gn/secondary/clang/include/clang/Config/BUILD.gn [deleted file]
utils/gn/secondary/clang/lib/ARCMigrate/enable.gni [deleted file]
utils/gn/secondary/clang/lib/Basic/BUILD.gn [deleted file]
utils/gn/secondary/clang/lib/StaticAnalyzer/Frontend/enable.gni [deleted file]
utils/gn/secondary/clang/utils/TableGen/BUILD.gn [deleted file]
utils/gn/secondary/clang/utils/TableGen/clang_tablegen.gni [deleted file]
utils/gn/secondary/lld/include/lld/Common/BUILD.gn
utils/gn/secondary/llvm/utils/TableGen/tablegen.gni
utils/lit/lit/TestRunner.py
utils/lit/lit/run.py

index 5cbdc11..191c684 100644 (file)
@@ -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)
index 369f469..15d51ee 100644 (file)
@@ -5,4 +5,7 @@ set(LLVM_LINK_COMPONENTS
 
 add_llvm_tool(llvm-bcanalyzer
   llvm-bcanalyzer.cpp
+
+  DEPENDS
+  intrinsics_gen
   )
index 017e85a..07c290a 100644 (file)
 #include <string>
 
 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;
 }
index b851010..38716d5 100644 (file)
@@ -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 (file)
index c064d12..0000000
+++ /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 (file)
index 0cb130e..0000000
+++ /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 (file)
index 7a7a42e..0000000
+++ /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 (file)
index 60323db..0000000
+++ /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 (file)
index 75653a9..0000000
+++ /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 (file)
index acfccca..0000000
+++ /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 (file)
index 20706cc..0000000
+++ /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"
-  }
-}
index 5c7cd93..b45c04e 100644 (file)
@@ -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",
index 3762923..ce475f5 100644 (file)
@@ -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 = [
index 4aa7845..4d903b4 100644 (file)
@@ -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
index 510f9b3..c4f9eb2 100644 (file)
@@ -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: