diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/Sparc/AsmParser/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/Sparc/AsmParser/BUILD.gn new file mode 100644 --- /dev/null +++ b/llvm/utils/gn/secondary/llvm/lib/Target/Sparc/AsmParser/BUILD.gn @@ -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", + ] +} diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/Sparc/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/Sparc/BUILD.gn new file mode 100644 --- /dev/null +++ b/llvm/utils/gn/secondary/llvm/lib/Target/Sparc/BUILD.gn @@ -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", + ] +} diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/Sparc/Disassembler/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/Sparc/Disassembler/BUILD.gn new file mode 100644 --- /dev/null +++ b/llvm/utils/gn/secondary/llvm/lib/Target/Sparc/Disassembler/BUILD.gn @@ -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", + ] +} diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/Sparc/MCTargetDesc/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/Sparc/MCTargetDesc/BUILD.gn new file mode 100644 --- /dev/null +++ b/llvm/utils/gn/secondary/llvm/lib/Target/Sparc/MCTargetDesc/BUILD.gn @@ -0,0 +1,67 @@ +import("//llvm/utils/TableGen/tablegen.gni") + +tablegen("SparcGenAsmWriter") { + visibility = [ ":tablegen" ] + args = [ "-gen-asm-writer" ] + td_file = "../Sparc.td" +} + +tablegen("SparcGenInstrInfo") { + visibility = [ ":tablegen" ] + args = [ "-gen-instr-info" ] + td_file = "../Sparc.td" +} + +tablegen("SparcGenMCCodeEmitter") { + visibility = [ ":tablegen" ] + 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" +} + +group("tablegen") { + visibility = [ + ":MCTargetDesc", + "../TargetInfo", + ] + public_deps = [ + ":SparcGenAsmWriter", + ":SparcGenInstrInfo", + ":SparcGenMCCodeEmitter", + ":SparcGenRegisterInfo", + ":SparcGenSubtargetInfo", + ] +} + +static_library("MCTargetDesc") { + output_name = "LLVMSparcDesc" + public_deps = [ + ":tablegen", + ] + deps = [ + "//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", + ] +} diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/Sparc/TargetInfo/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Target/Sparc/TargetInfo/BUILD.gn new file mode 100644 --- /dev/null +++ b/llvm/utils/gn/secondary/llvm/lib/Target/Sparc/TargetInfo/BUILD.gn @@ -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", + ] +} diff --git a/llvm/utils/gn/secondary/llvm/lib/Target/targets.gni b/llvm/utils/gn/secondary/llvm/lib/Target/targets.gni --- a/llvm/utils/gn/secondary/llvm/lib/Target/targets.gni +++ b/llvm/utils/gn/secondary/llvm/lib/Target/targets.gni @@ -26,6 +26,7 @@ "Hexagon", "Lanai", "PowerPC", + "Sparc", "WebAssembly", "X86", ] @@ -39,6 +40,7 @@ llvm_build_Hexagon = false llvm_build_Lanai = false llvm_build_PowerPC = false +llvm_build_Sparc = false llvm_build_WebAssembly = false llvm_build_X86 = false foreach(target, llvm_targets_to_build) { @@ -54,6 +56,8 @@ llvm_build_Lanai = true } else if (target == "PowerPC") { llvm_build_PowerPC = true + } else if (target == "Sparc") { + llvm_build_Sparc = true } else if (target == "WebAssembly") { llvm_build_WebAssembly = true } else if (target == "X86") {