Skip to content

Commit

Permalink
Reland "gn build: Add BPF target."
Browse files Browse the repository at this point in the history
Differential Revision: https://reviews.llvm.org/D57436

llvm-svn: 352705
  • Loading branch information
pcc committed Jan 31, 2019
1 parent d14d35b commit 0e2e0cc
Show file tree
Hide file tree
Showing 7 changed files with 241 additions and 0 deletions.
23 changes: 23 additions & 0 deletions llvm/utils/gn/secondary/llvm/lib/Target/BPF/AsmParser/BUILD.gn
@@ -0,0 +1,23 @@
import("//llvm/utils/TableGen/tablegen.gni")

tablegen("BPFGenAsmMatcher") {
visibility = [ ":AsmParser" ]
args = [ "-gen-asm-matcher" ]
td_file = "../BPF.td"
}

static_library("AsmParser") {
output_name = "LLVMBPFAsmParser"
deps = [
":BPFGenAsmMatcher",
"//llvm/lib/MC",
"//llvm/lib/MC/MCParser",
"//llvm/lib/Support",
"//llvm/lib/Target/BPF/MCTargetDesc",
"//llvm/lib/Target/BPF/TargetInfo",
]
include_dirs = [ ".." ]
sources = [
"BPFAsmParser.cpp",
]
}
94 changes: 94 additions & 0 deletions llvm/utils/gn/secondary/llvm/lib/Target/BPF/BUILD.gn
@@ -0,0 +1,94 @@
import("//llvm/utils/TableGen/tablegen.gni")

tablegen("BPFGenCallingConv") {
visibility = [ ":LLVMBPFCodeGen" ]
args = [ "-gen-callingconv" ]
td_file = "BPF.td"
}

tablegen("BPFGenDAGISel") {
visibility = [ ":LLVMBPFCodeGen" ]
args = [ "-gen-dag-isel" ]
td_file = "BPF.td"
}

tablegen("BPFGenFastISel") {
visibility = [ ":LLVMBPFCodeGen" ]
args = [ "-gen-fast-isel" ]
td_file = "BPF.td"
}

tablegen("BPFGenGlobalISel") {
visibility = [ ":LLVMBPFCodeGen" ]
args = [ "-gen-global-isel" ]
td_file = "BPF.td"
}

tablegen("BPFGenMCPseudoLowering") {
visibility = [ ":LLVMBPFCodeGen" ]
args = [ "-gen-pseudo-lowering" ]
td_file = "BPF.td"
}

tablegen("BPFGenRegisterBank") {
visibility = [ ":LLVMBPFCodeGen" ]
args = [ "-gen-register-bank" ]
td_file = "BPF.td"
}

static_library("LLVMBPFCodeGen") {
deps = [
":BPFGenCallingConv",
":BPFGenDAGISel",
":BPFGenFastISel",
":BPFGenGlobalISel",
":BPFGenMCPseudoLowering",
":BPFGenRegisterBank",
"InstPrinter",
"MCTargetDesc",
"TargetInfo",
"//llvm/include/llvm/Config:llvm-config",
"//llvm/lib/Analysis",
"//llvm/lib/CodeGen",
"//llvm/lib/CodeGen/AsmPrinter",
"//llvm/lib/CodeGen/GlobalISel",
"//llvm/lib/CodeGen/SelectionDAG",
"//llvm/lib/IR",
"//llvm/lib/MC",
"//llvm/lib/Support",
"//llvm/lib/Target",
]
include_dirs = [ "." ]
sources = [
"BPFAsmPrinter.cpp",
"BPFFrameLowering.cpp",
"BPFISelDAGToDAG.cpp",
"BPFISelLowering.cpp",
"BPFInstrInfo.cpp",
"BPFMCInstLower.cpp",
"BPFMIChecking.cpp",
"BPFMIPeephole.cpp",
"BPFRegisterInfo.cpp",
"BPFSelectionDAGInfo.cpp",
"BPFSubtarget.cpp",
"BPFTargetMachine.cpp",
"BTFDebug.cpp",
]
}

# This is a bit different from most build files: Due to this group
# having the directory's name, "//llvm/lib/Target/BPF" 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("BPF") {
deps = [
":LLVMBPFCodeGen",
"AsmParser",
"Disassembler",
"InstPrinter",
"MCTargetDesc",
"TargetInfo",
]
}
22 changes: 22 additions & 0 deletions llvm/utils/gn/secondary/llvm/lib/Target/BPF/Disassembler/BUILD.gn
@@ -0,0 +1,22 @@
import("//llvm/utils/TableGen/tablegen.gni")

tablegen("BPFGenDisassemblerTables") {
visibility = [ ":Disassembler" ]
args = [ "-gen-disassembler" ]
td_file = "../BPF.td"
}

static_library("Disassembler") {
output_name = "LLVMBPFDisassembler"
deps = [
":BPFGenDisassemblerTables",
"//llvm/lib/MC",
"//llvm/lib/MC/MCDisassembler",
"//llvm/lib/Support",
"//llvm/lib/Target/BPF/MCTargetDesc",
]
include_dirs = [ ".." ]
sources = [
"BPFDisassembler.cpp",
]
}
24 changes: 24 additions & 0 deletions llvm/utils/gn/secondary/llvm/lib/Target/BPF/InstPrinter/BUILD.gn
@@ -0,0 +1,24 @@
import("//llvm/utils/TableGen/tablegen.gni")

tablegen("BPFGenAsmWriter") {
visibility = [ ":InstPrinter" ]
args = [ "-gen-asm-writer" ]
td_file = "../BPF.td"
}

static_library("InstPrinter") {
output_name = "LLVMBPFAsmPrinter"
deps = [
":BPFGenAsmWriter",
"//llvm/lib/MC",
"//llvm/lib/Support",

# MCTargetDesc depends on InstPrinter, so we can't depend on the full
# MCTargetDesc target here: it would form a cycle.
"//llvm/lib/Target/BPF/MCTargetDesc:tablegen",
]
include_dirs = [ ".." ]
sources = [
"BPFInstPrinter.cpp",
]
}
60 changes: 60 additions & 0 deletions llvm/utils/gn/secondary/llvm/lib/Target/BPF/MCTargetDesc/BUILD.gn
@@ -0,0 +1,60 @@
import("//llvm/utils/TableGen/tablegen.gni")

tablegen("BPFGenInstrInfo") {
visibility = [ ":tablegen" ]
args = [ "-gen-instr-info" ]
td_file = "../BPF.td"
}

tablegen("BPFGenMCCodeEmitter") {
visibility = [ ":tablegen" ]
args = [ "-gen-emitter" ]
td_file = "../BPF.td"
}

tablegen("BPFGenRegisterInfo") {
visibility = [ ":tablegen" ]
args = [ "-gen-register-info" ]
td_file = "../BPF.td"
}

tablegen("BPFGenSubtargetInfo") {
visibility = [ ":tablegen" ]
args = [ "-gen-subtarget" ]
td_file = "../BPF.td"
}

group("tablegen") {
visibility = [
":MCTargetDesc",
"../InstPrinter",
"../TargetInfo",
]
public_deps = [
":BPFGenInstrInfo",
":BPFGenMCCodeEmitter",
":BPFGenRegisterInfo",
":BPFGenSubtargetInfo",
]
}

static_library("MCTargetDesc") {
output_name = "LLVMBPFDesc"
public_deps = [
":tablegen",
]
deps = [
"//llvm/lib/MC",
"//llvm/lib/MC/MCDisassembler",
"//llvm/lib/Support",
"//llvm/lib/Target/BPF/InstPrinter",
"//llvm/lib/Target/BPF/TargetInfo",
]
include_dirs = [ ".." ]
sources = [
"BPFAsmBackend.cpp",
"BPFELFObjectWriter.cpp",
"BPFMCCodeEmitter.cpp",
"BPFMCTargetDesc.cpp",
]
}
14 changes: 14 additions & 0 deletions llvm/utils/gn/secondary/llvm/lib/Target/BPF/TargetInfo/BUILD.gn
@@ -0,0 +1,14 @@
static_library("TargetInfo") {
output_name = "LLVMBPFInfo"
deps = [
"//llvm/lib/Support",

# MCTargetDesc depends on TargetInfo, so we can't depend on the full
# MCTargetDesc target here: it would form a cycle.
"//llvm/lib/Target/BPF/MCTargetDesc:tablegen",
]
include_dirs = [ ".." ]
sources = [
"BPFTargetInfo.cpp",
]
}
4 changes: 4 additions & 0 deletions llvm/utils/gn/secondary/llvm/lib/Target/targets.gni
Expand Up @@ -22,6 +22,7 @@ if (llvm_targets_to_build == "host") {
llvm_targets_to_build = [
"AArch64",
"ARM",
"BPF",
"PowerPC",
"WebAssembly",
"X86",
Expand All @@ -32,6 +33,7 @@ if (llvm_targets_to_build == "host") {
# and remember which targets are built.
llvm_build_AArch64 = false
llvm_build_ARM = false
llvm_build_BPF = false
llvm_build_PowerPC = false
llvm_build_WebAssembly = false
llvm_build_X86 = false
Expand All @@ -40,6 +42,8 @@ foreach(target, llvm_targets_to_build) {
llvm_build_AArch64 = true
} else if (target == "ARM") {
llvm_build_ARM = true
} else if (target == "BPF") {
llvm_build_BPF = true
} else if (target == "PowerPC") {
llvm_build_PowerPC = true
} else if (target == "WebAssembly") {
Expand Down

0 comments on commit 0e2e0cc

Please sign in to comment.