1 import("//llvm/utils/TableGen/tablegen.gni")
3 tablegen("ARMGenCallingConv") {
4 visibility = [ ":LLVMARMCodeGen" ]
5 args = [ "-gen-callingconv" ]
9 tablegen("ARMGenDAGISel") {
10 visibility = [ ":LLVMARMCodeGen" ]
11 args = [ "-gen-dag-isel" ]
15 tablegen("ARMGenFastISel") {
16 visibility = [ ":LLVMARMCodeGen" ]
17 args = [ "-gen-fast-isel" ]
21 tablegen("ARMGenGlobalISel") {
22 visibility = [ ":LLVMARMCodeGen" ]
23 args = [ "-gen-global-isel" ]
27 tablegen("ARMGenMCPseudoLowering") {
28 visibility = [ ":LLVMARMCodeGen" ]
29 args = [ "-gen-pseudo-lowering" ]
33 tablegen("ARMGenRegisterBank") {
34 visibility = [ ":LLVMARMCodeGen" ]
35 args = [ "-gen-register-bank" ]
39 static_library("LLVMARMCodeGen") {
45 ":ARMGenMCPseudoLowering",
46 ":ARMGenRegisterBank",
50 "//llvm/include/llvm/Config:llvm-config",
51 "//llvm/lib/Analysis",
53 "//llvm/lib/CodeGen/AsmPrinter",
54 "//llvm/lib/CodeGen/GlobalISel",
55 "//llvm/lib/CodeGen/SelectionDAG",
61 include_dirs = [ "." ]
65 "ARMBaseInstrInfo.cpp",
66 "ARMBaseRegisterInfo.cpp",
67 "ARMBasicBlockInfo.cpp",
68 "ARMCallLowering.cpp",
70 "ARMCodeGenPrepare.cpp",
71 "ARMConstantIslandPass.cpp",
72 "ARMConstantPoolValue.cpp",
73 "ARMExpandPseudoInsts.cpp",
75 "ARMFrameLowering.cpp",
76 "ARMHazardRecognizer.cpp",
77 "ARMISelDAGToDAG.cpp",
78 "ARMISelLowering.cpp",
80 "ARMInstructionSelector.cpp",
81 "ARMLegalizerInfo.cpp",
82 "ARMLoadStoreOptimizer.cpp",
83 "ARMLowOverheadLoops.cpp",
85 "ARMMachineFunctionInfo.cpp",
87 "ARMOptimizeBarriersPass.cpp",
89 "ARMRegisterBankInfo.cpp",
90 "ARMRegisterInfo.cpp",
91 "ARMSelectionDAGInfo.cpp",
93 "ARMTargetMachine.cpp",
94 "ARMTargetObjectFile.cpp",
95 "ARMTargetTransformInfo.cpp",
96 "MLxExpansionPass.cpp",
97 "MVETailPredication.cpp",
98 "MVEVPTBlockPass.cpp",
99 "Thumb1FrameLowering.cpp",
100 "Thumb1InstrInfo.cpp",
101 "Thumb2ITBlockPass.cpp",
102 "Thumb2InstrInfo.cpp",
103 "Thumb2SizeReduction.cpp",
104 "ThumbRegisterInfo.cpp",
108 # This is a bit different from most build files: Due to this group
109 # having the directory's name, "//llvm/lib/Target/ARM" will refer to this
110 # target, which pulls in the code in this directory *and all subdirectories*.
111 # For most other directories, "//llvm/lib/Foo" only pulls in the code directly
112 # in "llvm/lib/Foo". The forwarding targets in //llvm/lib/Target expect this
113 # different behavior.