1import("//llvm/utils/TableGen/tablegen.gni")
2
3tablegen("SystemZGenCallingConv") {
4  visibility = [ ":LLVMSystemZCodeGen" ]
5  args = [ "-gen-callingconv" ]
6  td_file = "SystemZ.td"
7}
8
9tablegen("SystemZGenDAGISel") {
10  visibility = [ ":LLVMSystemZCodeGen" ]
11  args = [ "-gen-dag-isel" ]
12  td_file = "SystemZ.td"
13}
14
15static_library("LLVMSystemZCodeGen") {
16  deps = [
17    ":SystemZGenCallingConv",
18    ":SystemZGenDAGISel",
19    "MCTargetDesc",
20    "TargetInfo",
21    "//llvm/include/llvm/Config:llvm-config",
22    "//llvm/lib/Analysis",
23    "//llvm/lib/CodeGen",
24    "//llvm/lib/CodeGen/AsmPrinter",
25    "//llvm/lib/CodeGen/SelectionDAG",
26    "//llvm/lib/IR",
27    "//llvm/lib/MC",
28    "//llvm/lib/Support",
29    "//llvm/lib/Target",
30    "//llvm/lib/Transforms/Scalar",
31  ]
32  include_dirs = [ "." ]
33  sources = [
34    "SystemZAsmPrinter.cpp",
35    "SystemZCallingConv.cpp",
36    "SystemZConstantPoolValue.cpp",
37    "SystemZCopyPhysRegs.cpp",
38    "SystemZElimCompare.cpp",
39    "SystemZFrameLowering.cpp",
40    "SystemZHazardRecognizer.cpp",
41    "SystemZISelDAGToDAG.cpp",
42    "SystemZISelLowering.cpp",
43    "SystemZInstrInfo.cpp",
44    "SystemZLDCleanup.cpp",
45    "SystemZLongBranch.cpp",
46    "SystemZMCInstLower.cpp",
47    "SystemZMachineFunctionInfo.cpp",
48    "SystemZMachineScheduler.cpp",
49    "SystemZPostRewrite.cpp",
50    "SystemZRegisterInfo.cpp",
51    "SystemZSelectionDAGInfo.cpp",
52    "SystemZShortenInst.cpp",
53    "SystemZSubtarget.cpp",
54    "SystemZTDC.cpp",
55    "SystemZTargetMachine.cpp",
56    "SystemZTargetTransformInfo.cpp",
57  ]
58}
59
60# This is a bit different from most build files: Due to this group
61# having the directory's name, "//llvm/lib/Target/SystemZ" will refer to this
62# target, which pulls in the code in this directory *and all subdirectories*.
63# For most other directories, "//llvm/lib/Foo" only pulls in the code directly
64# in "llvm/lib/Foo". The forwarding targets in //llvm/lib/Target expect this
65# different behavior.
66group("SystemZ") {
67  deps = [
68    ":LLVMSystemZCodeGen",
69    "AsmParser",
70    "Disassembler",
71    "MCTargetDesc",
72    "TargetInfo",
73  ]
74}
75