diff options
7 files changed, 241 insertions, 0 deletions
diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/BPF/AsmParser/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/BPF/AsmParser/BUILD.gn new file mode 100644 index 00000000000..bc6e7ab9bf0 --- /dev/null +++ b/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", +  ] +} diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/BPF/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/BPF/BUILD.gn new file mode 100644 index 00000000000..180ab94927a --- /dev/null +++ b/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", +  ] +} diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/BPF/Disassembler/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/BPF/Disassembler/BUILD.gn new file mode 100644 index 00000000000..1ee3bc70ba7 --- /dev/null +++ b/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", +  ] +} diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/BPF/InstPrinter/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/BPF/InstPrinter/BUILD.gn new file mode 100644 index 00000000000..30e2004c282 --- /dev/null +++ b/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", +  ] +} diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/BPF/MCTargetDesc/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/BPF/MCTargetDesc/BUILD.gn new file mode 100644 index 00000000000..843e23053d9 --- /dev/null +++ b/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", +  ] +} diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/BPF/TargetInfo/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/BPF/TargetInfo/BUILD.gn new file mode 100644 index 00000000000..1fd264d70f8 --- /dev/null +++ b/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", +  ] +} diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/targets.gni b/llvm/utils/gn/secondary/llvm/lib/Target/targets.gni index 85055cfed92..dc17b505a8e 100644 --- a/llvm/utils/gn/secondary/llvm/lib/Target/targets.gni +++ b/llvm/utils/gn/secondary/llvm/lib/Target/targets.gni @@ -22,6 +22,7 @@ if (llvm_targets_to_build == "host") {    llvm_targets_to_build = [      "AArch64",      "ARM", +    "BPF",      "PowerPC",      "WebAssembly",      "X86", @@ -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 @@ -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") {  | 

