[ARM] MVE predicate store patterns
[llvm-complete.git] / utils / gn / secondary / llvm / lib / Target / RISCV / BUILD.gn
blob7a0610e5bbe76f5d86fe1c6aafc89f94a7229cd0
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("RISCVGenMCPseudoLowering") {
24   visibility = [ ":LLVMRISCVCodeGen" ]
25   args = [ "-gen-pseudo-lowering" ]
26   td_file = "RISCV.td"
29 static_library("LLVMRISCVCodeGen") {
30   deps = [
31     ":RISCVGenCompressInstEmitter",
32     ":RISCVGenDAGISel",
33     ":RISCVGenMCPseudoLowering",
34     "MCTargetDesc",
35     "TargetInfo",
36     "Utils",
37     "//llvm/include/llvm/Config:llvm-config",
38     "//llvm/lib/CodeGen",
39     "//llvm/lib/CodeGen/AsmPrinter",
40     "//llvm/lib/CodeGen/SelectionDAG",
41     "//llvm/lib/IR",
42     "//llvm/lib/MC",
43     "//llvm/lib/Support",
44     "//llvm/lib/Target",
45   ]
46   include_dirs = [ "." ]
47   sources = [
48     "RISCVAsmPrinter.cpp",
49     "RISCVExpandPseudoInsts.cpp",
50     "RISCVFrameLowering.cpp",
51     "RISCVISelDAGToDAG.cpp",
52     "RISCVISelLowering.cpp",
53     "RISCVInstrInfo.cpp",
54     "RISCVMCInstLower.cpp",
55     "RISCVMergeBaseOffset.cpp",
56     "RISCVRegisterInfo.cpp",
57     "RISCVSubtarget.cpp",
58     "RISCVTargetMachine.cpp",
59     "RISCVTargetObjectFile.cpp",
60     "RISCVTargetTransformInfo.cpp",
61   ]
64 # This is a bit different from most build files: Due to this group
65 # having the directory's name, "//llvm/lib/Target/RISCV" will refer to this
66 # target, which pulls in the code in this directory *and all subdirectories*.
67 # For most other directories, "//llvm/lib/Foo" only pulls in the code directly
68 # in "llvm/lib/Foo". The forwarding targets in //llvm/lib/Target expect this
69 # different behavior.
70 group("RISCV") {
71   deps = [
72     ":LLVMRISCVCodeGen",
73     "AsmParser",
74     "Disassembler",
75     "MCTargetDesc",
76     "TargetInfo",
77     "Utils",
78   ]