1 import("//llvm/utils/TableGen/tablegen.gni")
3 tablegen("AArch64GenAsmMatcher") {
4 visibility = [ ":LLVMAArch64CodeGen" ]
5 args = [ "-gen-asm-matcher" ]
9 tablegen("AArch64GenCallingConv") {
10 visibility = [ ":LLVMAArch64CodeGen" ]
11 args = [ "-gen-callingconv" ]
12 td_file = "AArch64.td"
15 tablegen("AArch64GenDAGISel") {
16 visibility = [ ":LLVMAArch64CodeGen" ]
17 args = [ "-gen-dag-isel" ]
18 td_file = "AArch64.td"
21 tablegen("AArch64GenFastISel") {
22 visibility = [ ":LLVMAArch64CodeGen" ]
23 args = [ "-gen-fast-isel" ]
24 td_file = "AArch64.td"
27 tablegen("AArch64GenGlobalISel") {
28 visibility = [ ":LLVMAArch64CodeGen" ]
29 args = [ "-gen-global-isel" ]
30 td_file = "AArch64.td"
33 tablegen("AArch64GenGICombiner") {
34 visibility = [ ":LLVMAArch64CodeGen" ]
36 "-gen-global-isel-combiner",
37 "-combiners=AArch64PreLegalizerCombinerHelper",
39 td_file = "AArch64.td"
42 tablegen("AArch64GenMCPseudoLowering") {
43 visibility = [ ":LLVMAArch64CodeGen" ]
44 args = [ "-gen-pseudo-lowering" ]
45 td_file = "AArch64.td"
48 tablegen("AArch64GenRegisterBank") {
49 visibility = [ ":LLVMAArch64CodeGen" ]
50 args = [ "-gen-register-bank" ]
51 td_file = "AArch64.td"
54 static_library("LLVMAArch64CodeGen") {
56 ":AArch64GenAsmMatcher",
57 ":AArch64GenCallingConv",
59 ":AArch64GenFastISel",
60 ":AArch64GenGICombiner",
61 ":AArch64GenGlobalISel",
62 ":AArch64GenMCPseudoLowering",
63 ":AArch64GenRegisterBank",
67 "//llvm/lib/Analysis",
69 "//llvm/lib/CodeGen/AsmPrinter",
70 "//llvm/lib/CodeGen/GlobalISel",
71 "//llvm/lib/CodeGen/SelectionDAG",
76 "//llvm/lib/Transforms/Scalar",
78 include_dirs = [ "." ]
80 "AArch64A53Fix835769.cpp",
81 "AArch64A57FPLoadBalancing.cpp",
82 "AArch64AdvSIMDScalarPass.cpp",
83 "AArch64AsmPrinter.cpp",
84 "AArch64BranchTargets.cpp",
85 "AArch64CallLowering.cpp",
86 "AArch64CallingConvention.cpp",
87 "AArch64CleanupLocalDynamicTLSPass.cpp",
88 "AArch64CollectLOH.cpp",
89 "AArch64CompressJumpTables.cpp",
90 "AArch64CondBrTuning.cpp",
91 "AArch64ConditionOptimizer.cpp",
92 "AArch64ConditionalCompares.cpp",
93 "AArch64DeadRegisterDefinitionsPass.cpp",
94 "AArch64ExpandImm.cpp",
95 "AArch64ExpandPseudoInsts.cpp",
96 "AArch64FalkorHWPFFix.cpp",
97 "AArch64FastISel.cpp",
98 "AArch64FrameLowering.cpp",
99 "AArch64ISelDAGToDAG.cpp",
100 "AArch64ISelLowering.cpp",
101 "AArch64InstrInfo.cpp",
102 "AArch64InstructionSelector.cpp",
103 "AArch64LegalizerInfo.cpp",
104 "AArch64LoadStoreOptimizer.cpp",
105 "AArch64MCInstLower.cpp",
106 "AArch64MacroFusion.cpp",
107 "AArch64PBQPRegAlloc.cpp",
108 "AArch64PreLegalizerCombiner.cpp",
109 "AArch64PromoteConstant.cpp",
110 "AArch64RedundantCopyElimination.cpp",
111 "AArch64RegisterBankInfo.cpp",
112 "AArch64RegisterInfo.cpp",
113 "AArch64SIMDInstrOpt.cpp",
114 "AArch64SelectionDAGInfo.cpp",
115 "AArch64SpeculationHardening.cpp",
116 "AArch64StackTagging.cpp",
117 "AArch64StackTaggingPreRA.cpp",
118 "AArch64StorePairSuppress.cpp",
119 "AArch64Subtarget.cpp",
120 "AArch64TargetMachine.cpp",
121 "AArch64TargetObjectFile.cpp",
122 "AArch64TargetTransformInfo.cpp",
126 # This is a bit different from most build files: Due to this group
127 # having the directory's name, "//llvm/lib/Target/AArch64" will refer to this
128 # target, which pulls in the code in this directory *and all subdirectories*.
129 # For most other directories, "//llvm/lib/Foo" only pulls in the code directly
130 # in "llvm/lib/Foo". The forwarding targets in //llvm/lib/Target expect this
131 # different behavior.
134 ":LLVMAArch64CodeGen",