[lit] Improve lit.Run class
[llvm-complete.git] / utils / gn / secondary / llvm / lib / Target / RISCV / BUILD.gn
blob7df0713f129c0cb27db59bc0a30e27a3bd05b374
1 import("//llvm/utils/TableGen/tablegen.gni")
3 # RISCV is the only target that has a "compress instr emitter", and it's
4 # a bit strange in that it defines static functions depending on which
5 # defines are set. Instead of housing these functions in one library,
6 # various libraries include the generated .inc file with different defines set.
7 tablegen("RISCVGenCompressInstEmitter") {
8   visibility = [
9     ":LLVMRISCVCodeGen",
10     "AsmParser",
11     "MCTargetDesc",
12   ]
13   args = [ "-gen-compress-inst-emitter" ]
14   td_file = "RISCV.td"
17 tablegen("RISCVGenDAGISel") {
18   visibility = [ ":LLVMRISCVCodeGen" ]
19   args = [ "-gen-dag-isel" ]
20   td_file = "RISCV.td"
23 tablegen("RISCVGenGlobalISel") {
24   visibility = [ ":LLVMRISCVCodeGen" ]
25   args = [ "-gen-global-isel" ]
26   td_file = "RISCV.td"
29 tablegen("RISCVGenMCPseudoLowering") {
30   visibility = [ ":LLVMRISCVCodeGen" ]
31   args = [ "-gen-pseudo-lowering" ]
32   td_file = "RISCV.td"
35 tablegen("RISCVGenRegisterBank") {
36   visibility = [ ":LLVMRISCVCodeGen" ]
37   args = [ "-gen-register-bank" ]
38   td_file = "RISCV.td"
41 static_library("LLVMRISCVCodeGen") {
42   deps = [
43     ":RISCVGenCompressInstEmitter",
44     ":RISCVGenDAGISel",
45     ":RISCVGenGlobalISel",
46     ":RISCVGenMCPseudoLowering",
47     ":RISCVGenRegisterBank",
48     "MCTargetDesc",
49     "TargetInfo",
50     "Utils",
51     "//llvm/include/llvm/Config:llvm-config",
52     "//llvm/lib/CodeGen",
53     "//llvm/lib/CodeGen/AsmPrinter",
54     "//llvm/lib/CodeGen/SelectionDAG",
55     "//llvm/lib/IR",
56     "//llvm/lib/MC",
57     "//llvm/lib/Support",
58     "//llvm/lib/Target",
59   ]
60   include_dirs = [ "." ]
61   sources = [
62     "RISCVAsmPrinter.cpp",
63     "RISCVCallLowering.cpp",
64     "RISCVExpandPseudoInsts.cpp",
65     "RISCVFrameLowering.cpp",
66     "RISCVISelDAGToDAG.cpp",
67     "RISCVISelLowering.cpp",
68     "RISCVInstrInfo.cpp",
69     "RISCVInstructionSelector.cpp",
70     "RISCVLegalizerInfo.cpp",
71     "RISCVMCInstLower.cpp",
72     "RISCVMergeBaseOffset.cpp",
73     "RISCVRegisterBankInfo.cpp",
74     "RISCVRegisterInfo.cpp",
75     "RISCVSubtarget.cpp",
76     "RISCVTargetMachine.cpp",
77     "RISCVTargetObjectFile.cpp",
78     "RISCVTargetTransformInfo.cpp",
79   ]
82 # This is a bit different from most build files: Due to this group
83 # having the directory's name, "//llvm/lib/Target/RISCV" will refer to this
84 # target, which pulls in the code in this directory *and all subdirectories*.
85 # For most other directories, "//llvm/lib/Foo" only pulls in the code directly
86 # in "llvm/lib/Foo". The forwarding targets in //llvm/lib/Target expect this
87 # different behavior.
88 group("RISCV") {
89   deps = [
90     ":LLVMRISCVCodeGen",
91     "AsmParser",
92     "Disassembler",
93     "MCTargetDesc",
94     "TargetInfo",
95     "Utils",
96   ]