]> granicus.if.org Git - llvm/commitdiff
gn build: add Lanai target
authorDavid L. Jones <dlj@google.com>
Tue, 14 May 2019 03:52:33 +0000 (03:52 +0000)
committerDavid L. Jones <dlj@google.com>
Tue, 14 May 2019 03:52:33 +0000 (03:52 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360644 91177308-0d34-0410-b5e6-96231b3b80d8

utils/gn/secondary/llvm/lib/Target/Lanai/AsmParser/BUILD.gn [new file with mode: 0644]
utils/gn/secondary/llvm/lib/Target/Lanai/BUILD.gn [new file with mode: 0644]
utils/gn/secondary/llvm/lib/Target/Lanai/Disassembler/BUILD.gn [new file with mode: 0644]
utils/gn/secondary/llvm/lib/Target/Lanai/MCTargetDesc/BUILD.gn [new file with mode: 0644]
utils/gn/secondary/llvm/lib/Target/Lanai/TargetInfo/BUILD.gn [new file with mode: 0644]
utils/gn/secondary/llvm/lib/Target/targets.gni

diff --git a/utils/gn/secondary/llvm/lib/Target/Lanai/AsmParser/BUILD.gn b/utils/gn/secondary/llvm/lib/Target/Lanai/AsmParser/BUILD.gn
new file mode 100644 (file)
index 0000000..5ab14fc
--- /dev/null
@@ -0,0 +1,22 @@
+import("//llvm/utils/TableGen/tablegen.gni")
+
+tablegen("LanaiGenAsmMatcher") {
+  visibility = [ ":AsmParser" ]
+  args = [ "-gen-asm-matcher" ]
+  td_file = "../Lanai.td"
+}
+
+static_library("AsmParser") {
+  output_name = "LLVMLanaiAsmParser"
+  deps = [
+    ":LanaiGenAsmMatcher",
+    "//llvm/lib/MC",
+    "//llvm/lib/MC/MCParser",
+    "//llvm/lib/Support",
+    "//llvm/lib/Target/Lanai/MCTargetDesc",
+  ]
+  include_dirs = [ ".." ]
+  sources = [
+    "LanaiAsmParser.cpp",
+  ]
+}
diff --git a/utils/gn/secondary/llvm/lib/Target/Lanai/BUILD.gn b/utils/gn/secondary/llvm/lib/Target/Lanai/BUILD.gn
new file mode 100644 (file)
index 0000000..6600769
--- /dev/null
@@ -0,0 +1,64 @@
+import("//llvm/utils/TableGen/tablegen.gni")
+
+tablegen("LanaiGenCallingConv") {
+  visibility = [ ":LLVMLanaiCodeGen" ]
+  args = [ "-gen-callingconv" ]
+  td_file = "Lanai.td"
+}
+
+tablegen("LanaiGenDAGISel") {
+  visibility = [ ":LLVMLanaiCodeGen" ]
+  args = [ "-gen-dag-isel" ]
+  td_file = "Lanai.td"
+}
+
+static_library("LLVMLanaiCodeGen") {
+  deps = [
+    ":LanaiGenCallingConv",
+    ":LanaiGenDAGISel",
+    "MCTargetDesc",
+    "TargetInfo",
+    "//llvm/include/llvm/Config:llvm-config",
+    "//llvm/lib/Analysis",
+    "//llvm/lib/CodeGen",
+    "//llvm/lib/CodeGen/AsmPrinter",
+    "//llvm/lib/CodeGen/SelectionDAG",
+    "//llvm/lib/IR",
+    "//llvm/lib/MC",
+    "//llvm/lib/Support",
+    "//llvm/lib/Target",
+  ]
+  include_dirs = [ "." ]
+  sources = [
+    "LanaiAsmPrinter.cpp",
+    "LanaiDelaySlotFiller.cpp",
+    "LanaiFrameLowering.cpp",
+    "LanaiInstrInfo.cpp",
+    "LanaiISelDAGToDAG.cpp",
+    "LanaiISelLowering.cpp",
+    "LanaiMachineFunctionInfo.cpp",
+    "LanaiMCInstLower.cpp",
+    "LanaiMemAluCombiner.cpp",
+    "LanaiRegisterInfo.cpp",
+    "LanaiSelectionDAGInfo.cpp",
+    "LanaiSubtarget.cpp",
+    "LanaiTargetMachine.cpp",
+    "LanaiTargetObjectFile.cpp",
+  ]
+}
+
+# This is a bit different from most build files: Due to this group
+# having the directory's name, "//llvm/lib/Target/Lanai" will refer to this
+# target, which pulls in the code in this directory *and all subdirectories*.
+# For most other directories, "//llvm/lib/Foo" only pulls in the code directly
+# in "llvm/lib/Foo". The forwarding targets in //llvm/lib/Target expect this
+# different behavior.
+group("Lanai") {
+  deps = [
+    ":LLVMLanaiCodeGen",
+    "AsmParser",
+    "Disassembler",
+    "MCTargetDesc",
+    "TargetInfo",
+  ]
+}
diff --git a/utils/gn/secondary/llvm/lib/Target/Lanai/Disassembler/BUILD.gn b/utils/gn/secondary/llvm/lib/Target/Lanai/Disassembler/BUILD.gn
new file mode 100644 (file)
index 0000000..ce04122
--- /dev/null
@@ -0,0 +1,22 @@
+import("//llvm/utils/TableGen/tablegen.gni")
+
+tablegen("LanaiGenDisassemblerTables") {
+  visibility = [ ":Disassembler" ]
+  args = [ "-gen-disassembler" ]
+  td_file = "../Lanai.td"
+}
+
+static_library("Disassembler") {
+  output_name = "LLVMLanaiDisassembler"
+  deps = [
+    ":LanaiGenDisassemblerTables",
+    "//llvm/lib/MC/MCDisassembler",
+    "//llvm/lib/Support",
+    "//llvm/lib/Target/Lanai/MCTargetDesc",
+    "//llvm/lib/Target/Lanai/TargetInfo",
+  ]
+  include_dirs = [ ".." ]
+  sources = [
+    "LanaiDisassembler.cpp",
+  ]
+}
diff --git a/utils/gn/secondary/llvm/lib/Target/Lanai/MCTargetDesc/BUILD.gn b/utils/gn/secondary/llvm/lib/Target/Lanai/MCTargetDesc/BUILD.gn
new file mode 100644 (file)
index 0000000..9269924
--- /dev/null
@@ -0,0 +1,70 @@
+import("//llvm/utils/TableGen/tablegen.gni")
+
+tablegen("LanaiGenAsmWriter") {
+  visibility = [ ":MCTargetDesc" ]
+  args = [ "-gen-asm-writer" ]
+  td_file = "../Lanai.td"
+}
+
+tablegen("LanaiGenInstrInfo") {
+  visibility = [ ":tablegen" ]
+  args = [ "-gen-instr-info" ]
+  td_file = "../Lanai.td"
+}
+
+tablegen("LanaiGenMCCodeEmitter") {
+  visibility = [ ":MCTargetDesc" ]
+  args = [ "-gen-emitter" ]
+  td_file = "../Lanai.td"
+}
+
+tablegen("LanaiGenRegisterInfo") {
+  visibility = [ ":tablegen" ]
+  args = [ "-gen-register-info" ]
+  td_file = "../Lanai.td"
+}
+
+tablegen("LanaiGenSubtargetInfo") {
+  visibility = [ ":tablegen" ]
+  args = [ "-gen-subtarget" ]
+  td_file = "../Lanai.td"
+}
+
+# This should contain tablegen targets generating .inc files included
+# by other targets. .inc files only used by .cpp files in this directory
+# should be in deps on the static_library instead.
+group("tablegen") {
+  visibility = [
+    ":MCTargetDesc",
+    "../TargetInfo",
+  ]
+  public_deps = [
+    ":LanaiGenInstrInfo",
+    ":LanaiGenRegisterInfo",
+    ":LanaiGenSubtargetInfo",
+  ]
+}
+
+static_library("MCTargetDesc") {
+  output_name = "LLVMLanaiDesc"
+  public_deps = [
+    ":tablegen",
+  ]
+  deps = [
+    ":LanaiGenAsmWriter",
+    ":LanaiGenMCCodeEmitter",
+    "//llvm/lib/MC",
+    "//llvm/lib/Support",
+    "//llvm/lib/Target/Lanai/TargetInfo",
+  ]
+  include_dirs = [ ".." ]
+  sources = [
+    "LanaiAsmBackend.cpp",
+    "LanaiELFObjectWriter.cpp",
+    "LanaiInstPrinter.cpp",
+    "LanaiMCAsmInfo.cpp",
+    "LanaiMCCodeEmitter.cpp",
+    "LanaiMCExpr.cpp",
+    "LanaiMCTargetDesc.cpp",
+  ]
+}
diff --git a/utils/gn/secondary/llvm/lib/Target/Lanai/TargetInfo/BUILD.gn b/utils/gn/secondary/llvm/lib/Target/Lanai/TargetInfo/BUILD.gn
new file mode 100644 (file)
index 0000000..c814ac4
--- /dev/null
@@ -0,0 +1,11 @@
+static_library("TargetInfo") {
+  output_name = "LLVMLanaiInfo"
+  deps = [
+    "//llvm/lib/IR",
+    "//llvm/lib/Support",
+  ]
+  include_dirs = [ ".." ]
+  sources = [
+    "LanaiTargetInfo.cpp",
+  ]
+}
index 39d08c07f8d09cfc5b3c4c5ba596de3080764292..c2a1ec6223adba4e3b0ff372571df122cf018885 100644 (file)
@@ -23,6 +23,7 @@ if (llvm_targets_to_build == "host") {
     "AArch64",
     "ARM",
     "BPF",
+    "Lanai",
     "PowerPC",
     "WebAssembly",
     "X86",