[llvm] r350184 - [gn build] Add some llvm/tools: llvm-exegesis, llvm-extract, llvm-link

Nico Weber via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 31 15:48:23 PST 2018


Author: nico
Date: Mon Dec 31 15:48:22 2018
New Revision: 350184

URL: http://llvm.org/viewvc/llvm-project?rev=350184&view=rev
Log:
[gn build] Add some llvm/tools: llvm-exegesis, llvm-extract, llvm-link

Also add build file for dependency llvm/lib/ExecutionEngine/MCJIT.

The exegesis stuff is pretty hairy and knows a lot about Target internals (in
general, not specifically in the GN build). I put the llvm-tblgen -gen-exegesis
call in llvm/tools/llvm-exegesis/lib/X86, instead of in llvm/lib/Target/X86
where it is in CMake land, and asked on D52932 why it's in that place in the
CMake build.

Needed for check-llvm.

Differential Revision: https://reviews.llvm.org/D56167

Added:
    llvm/trunk/utils/gn/secondary/llvm/lib/ExecutionEngine/MCJIT/
    llvm/trunk/utils/gn/secondary/llvm/lib/ExecutionEngine/MCJIT/BUILD.gn
    llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/
    llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/BUILD.gn
    llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/lib/
    llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/lib/BUILD.gn
    llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/lib/X86/
    llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/lib/X86/BUILD.gn
    llvm/trunk/utils/gn/secondary/llvm/tools/llvm-extract/
    llvm/trunk/utils/gn/secondary/llvm/tools/llvm-extract/BUILD.gn
    llvm/trunk/utils/gn/secondary/llvm/tools/llvm-link/
    llvm/trunk/utils/gn/secondary/llvm/tools/llvm-link/BUILD.gn
Modified:
    llvm/trunk/utils/gn/secondary/BUILD.gn

Modified: llvm/trunk/utils/gn/secondary/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/BUILD.gn?rev=350184&r1=350183&r2=350184&view=diff
==============================================================================
--- llvm/trunk/utils/gn/secondary/BUILD.gn (original)
+++ llvm/trunk/utils/gn/secondary/BUILD.gn Mon Dec 31 15:48:22 2018
@@ -5,6 +5,9 @@ group("default") {
   deps = [
     "//clang/test",
     "//lld/test",
+    "//llvm/tools/llvm-exegesis",
+    "//llvm/tools/llvm-extract",
+    "//llvm/tools/llvm-link",
     "//llvm/tools/llvm-rc",
     "//llvm/tools/llvm-rtdyld",
     "//llvm/tools/llvm-undname",

Added: llvm/trunk/utils/gn/secondary/llvm/lib/ExecutionEngine/MCJIT/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/lib/ExecutionEngine/MCJIT/BUILD.gn?rev=350184&view=auto
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/lib/ExecutionEngine/MCJIT/BUILD.gn (added)
+++ llvm/trunk/utils/gn/secondary/llvm/lib/ExecutionEngine/MCJIT/BUILD.gn Mon Dec 31 15:48:22 2018
@@ -0,0 +1,14 @@
+static_library("MCJIT") {
+  output_name = "LLVMMCJIT"
+  deps = [
+    "//llvm/lib/ExecutionEngine",
+    "//llvm/lib/ExecutionEngine/RuntimeDyld",
+    "//llvm/lib/IR",
+    "//llvm/lib/Object",
+    "//llvm/lib/Support",
+    "//llvm/lib/Target",
+  ]
+  sources = [
+    "MCJIT.cpp",
+  ]
+}

Added: llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/BUILD.gn?rev=350184&view=auto
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/BUILD.gn (added)
+++ llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/BUILD.gn Mon Dec 31 15:48:22 2018
@@ -0,0 +1,15 @@
+executable("llvm-exegesis") {
+  deps = [
+    "lib",
+    "//llvm/lib/CodeGen",
+    "//llvm/lib/ExecutionEngine",
+    "//llvm/lib/ExecutionEngine/MCJIT",
+    "//llvm/lib/MC",
+    "//llvm/lib/Object",
+    "//llvm/lib/Support",
+    "//llvm/lib/Target:NativeTarget",
+  ]
+  sources = [
+    "llvm-exegesis.cpp",
+  ]
+}

Added: llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/lib/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/lib/BUILD.gn?rev=350184&view=auto
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/lib/BUILD.gn (added)
+++ llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/lib/BUILD.gn Mon Dec 31 15:48:22 2018
@@ -0,0 +1,41 @@
+import("//llvm/lib/Target/targets.gni")
+
+static_library("lib") {
+  output_name = "LLVMExegesis"
+  deps = [
+    "//llvm/lib/Analysis",
+    "//llvm/lib/CodeGen",
+    "//llvm/lib/ExecutionEngine",
+    "//llvm/lib/ExecutionEngine/MCJIT",
+    "//llvm/lib/IR",
+    "//llvm/lib/MC",
+    "//llvm/lib/Object",
+    "//llvm/lib/ObjectYAML",
+    "//llvm/lib/Support",
+  ]
+  sources = [
+    "Analysis.cpp",
+    "Assembler.cpp",
+    "BenchmarkResult.cpp",
+    "BenchmarkRunner.cpp",
+    "Clustering.cpp",
+    "CodeTemplate.cpp",
+    "Latency.cpp",
+    "LlvmState.cpp",
+    "MCInstrDescView.cpp",
+    "PerfHelper.cpp",
+    "RegisterAliasing.cpp",
+    "RegisterValue.cpp",
+    "SnippetGenerator.cpp",
+    "Target.cpp",
+    "Uops.cpp",
+  ]
+
+  # FIXME: Add this once llvm/lib/Target/AArch64 exists.
+  #if (llvm_build_AArch64) {
+  #  deps += [ "AArch64" ]
+  #}
+  if (llvm_build_X86) {
+    deps += [ "X86" ]
+  }
+}

Added: llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/lib/X86/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/lib/X86/BUILD.gn?rev=350184&view=auto
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/lib/X86/BUILD.gn (added)
+++ llvm/trunk/utils/gn/secondary/llvm/tools/llvm-exegesis/lib/X86/BUILD.gn Mon Dec 31 15:48:22 2018
@@ -0,0 +1,21 @@
+import("//llvm/utils/TableGen/tablegen.gni")
+
+tablegen("X86GenExegesis") {
+  args = [ "-gen-exegesis" ]
+  td_file = "//llvm/lib/Target/X86/X86.td"
+}
+
+static_library("X86") {
+  output_name = "LLVMExegesisX86"
+  deps = [
+    ":X86GenExegesis",
+
+    # Exegesis reaches inside the Target/X86 tablegen internals and must
+    # depend on this Target/X86-internal build target.
+    "//llvm/lib/Target/X86/MCTargetDesc",
+  ]
+  sources = [
+    "Target.cpp",
+  ]
+  include_dirs = [ "//llvm/lib/Target/X86" ]
+}

Added: llvm/trunk/utils/gn/secondary/llvm/tools/llvm-extract/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/tools/llvm-extract/BUILD.gn?rev=350184&view=auto
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/tools/llvm-extract/BUILD.gn (added)
+++ llvm/trunk/utils/gn/secondary/llvm/tools/llvm-extract/BUILD.gn Mon Dec 31 15:48:22 2018
@@ -0,0 +1,12 @@
+executable("llvm-extract") {
+  deps = [
+    "//llvm/lib/Bitcode/Writer",
+    "//llvm/lib/IR",
+    "//llvm/lib/IRReader",
+    "//llvm/lib/Support",
+    "//llvm/lib/Transforms/IPO",
+  ]
+  sources = [
+    "llvm-extract.cpp",
+  ]
+}

Added: llvm/trunk/utils/gn/secondary/llvm/tools/llvm-link/BUILD.gn
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/gn/secondary/llvm/tools/llvm-link/BUILD.gn?rev=350184&view=auto
==============================================================================
--- llvm/trunk/utils/gn/secondary/llvm/tools/llvm-link/BUILD.gn (added)
+++ llvm/trunk/utils/gn/secondary/llvm/tools/llvm-link/BUILD.gn Mon Dec 31 15:48:22 2018
@@ -0,0 +1,16 @@
+executable("llvm-link") {
+  deps = [
+    "//llvm/lib/Bitcode/Reader",
+    "//llvm/lib/Bitcode/Writer",
+    "//llvm/lib/IR",
+    "//llvm/lib/IRReader",
+    "//llvm/lib/Linker",
+    "//llvm/lib/Object",
+    "//llvm/lib/Support",
+    "//llvm/lib/Transforms/IPO",
+    "//llvm/lib/Transforms/Utils",
+  ]
+  sources = [
+    "llvm-link.cpp",
+  ]
+}




More information about the llvm-commits mailing list