gn build: add Sparc target

llvm-svn: 360645
This commit is contained in:
David L. Jones 2019-05-14 04:02:50 +00:00
parent 500a6db479
commit 4fb6fcacf4
6 changed files with 192 additions and 0 deletions

View File

@ -0,0 +1,22 @@
import("//llvm/utils/TableGen/tablegen.gni")
tablegen("SparcGenAsmMatcher") {
visibility = [ ":AsmParser" ]
args = [ "-gen-asm-matcher" ]
td_file = "../Sparc.td"
}
static_library("AsmParser") {
output_name = "LLVMSparcAsmParser"
deps = [
":SparcGenAsmMatcher",
"//llvm/lib/MC",
"//llvm/lib/MC/MCParser",
"//llvm/lib/Support",
"//llvm/lib/Target/Sparc/MCTargetDesc",
]
include_dirs = [ ".." ]
sources = [
"SparcAsmParser.cpp",
]
}

View File

@ -0,0 +1,62 @@
import("//llvm/utils/TableGen/tablegen.gni")
tablegen("SparcGenCallingConv") {
visibility = [ ":LLVMSparcCodeGen" ]
args = [ "-gen-callingconv" ]
td_file = "Sparc.td"
}
tablegen("SparcGenDAGISel") {
visibility = [ ":LLVMSparcCodeGen" ]
args = [ "-gen-dag-isel" ]
td_file = "Sparc.td"
}
static_library("LLVMSparcCodeGen") {
deps = [
":SparcGenCallingConv",
":SparcGenDAGISel",
"MCTargetDesc",
"TargetInfo",
"//llvm/include/llvm/Config:llvm-config",
"//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 = [
"DelaySlotFiller.cpp",
"LeonPasses.cpp",
"SparcAsmPrinter.cpp",
"SparcInstrInfo.cpp",
"SparcISelDAGToDAG.cpp",
"SparcISelLowering.cpp",
"SparcFrameLowering.cpp",
"SparcMachineFunctionInfo.cpp",
"SparcRegisterInfo.cpp",
"SparcSubtarget.cpp",
"SparcTargetMachine.cpp",
"SparcMCInstLower.cpp",
"SparcTargetObjectFile.cpp",
]
}
# This is a bit different from most build files: Due to this group
# having the directory's name, "//llvm/lib/Target/Sparc" 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("Sparc") {
deps = [
":LLVMSparcCodeGen",
"AsmParser",
"Disassembler",
"MCTargetDesc",
"TargetInfo",
]
}

View File

@ -0,0 +1,21 @@
import("//llvm/utils/TableGen/tablegen.gni")
tablegen("SparcGenDisassemblerTables") {
visibility = [ ":Disassembler" ]
args = [ "-gen-disassembler" ]
td_file = "../Sparc.td"
}
static_library("Disassembler") {
output_name = "LLVMSparcDisassembler"
deps = [
":SparcGenDisassemblerTables",
"//llvm/lib/MC/MCDisassembler",
"//llvm/lib/Support",
"//llvm/lib/Target/Sparc/MCTargetDesc",
]
include_dirs = [ ".." ]
sources = [
"SparcDisassembler.cpp",
]
}

View File

@ -0,0 +1,70 @@
import("//llvm/utils/TableGen/tablegen.gni")
tablegen("SparcGenAsmWriter") {
visibility = [ ":MCTargetDesc" ]
args = [ "-gen-asm-writer" ]
td_file = "../Sparc.td"
}
tablegen("SparcGenInstrInfo") {
visibility = [ ":tablegen" ]
args = [ "-gen-instr-info" ]
td_file = "../Sparc.td"
}
tablegen("SparcGenMCCodeEmitter") {
visibility = [ ":MCTargetDesc" ]
args = [ "-gen-emitter" ]
td_file = "../Sparc.td"
}
tablegen("SparcGenRegisterInfo") {
visibility = [ ":tablegen" ]
args = [ "-gen-register-info" ]
td_file = "../Sparc.td"
}
tablegen("SparcGenSubtargetInfo") {
visibility = [ ":tablegen" ]
args = [ "-gen-subtarget" ]
td_file = "../Sparc.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 = [
":SparcGenInstrInfo",
":SparcGenRegisterInfo",
":SparcGenSubtargetInfo",
]
}
static_library("MCTargetDesc") {
output_name = "LLVMSparcDesc"
public_deps = [
":tablegen",
]
deps = [
":SparcGenAsmWriter",
":SparcGenMCCodeEmitter",
"//llvm/lib/MC",
"//llvm/lib/Support",
]
include_dirs = [ ".." ]
sources = [
"SparcAsmBackend.cpp",
"SparcELFObjectWriter.cpp",
"SparcInstPrinter.cpp",
"SparcMCAsmInfo.cpp",
"SparcMCCodeEmitter.cpp",
"SparcMCTargetDesc.cpp",
"SparcMCExpr.cpp",
"SparcTargetStreamer.cpp",
]
}

View File

@ -0,0 +1,12 @@
static_library("TargetInfo") {
output_name = "LLVMSparcInfo"
deps = [
"//llvm/lib/IR",
"//llvm/lib/Support",
"//llvm/lib/Target/Sparc/MCTargetDesc",
]
include_dirs = [ ".." ]
sources = [
"SparcTargetInfo.cpp",
]
}

View File

@ -25,6 +25,7 @@ if (llvm_targets_to_build == "host") {
"BPF",
"Lanai",
"PowerPC",
"Sparc",
"WebAssembly",
"X86",
]
@ -45,8 +46,12 @@ foreach(target, llvm_targets_to_build) {
llvm_build_ARM = true
} else if (target == "BPF") {
llvm_build_BPF = true
} else if (target == "Lanai") {
# Nothing to do.
} else if (target == "PowerPC") {
llvm_build_PowerPC = true
} else if (target == "Sparc") {
# Nothing to do.
} else if (target == "WebAssembly") {
llvm_build_WebAssembly = true
} else if (target == "X86") {