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("AArch64GenMCPseudoLowering") {
34 visibility = [ ":LLVMAArch64CodeGen" ]
35 args = [ "-gen-pseudo-lowering" ]
36 td_file = "AArch64.td"
39 tablegen("AArch64GenRegisterBank") {
40 visibility = [ ":LLVMAArch64CodeGen" ]
41 args = [ "-gen-register-bank" ]
42 td_file = "AArch64.td"
45 static_library("LLVMAArch64CodeGen") {
47 ":AArch64GenAsmMatcher",
48 ":AArch64GenCallingConv",
50 ":AArch64GenFastISel",
51 ":AArch64GenGlobalISel",
52 ":AArch64GenMCPseudoLowering",
53 ":AArch64GenRegisterBank",
57 "//llvm/lib/Analysis",
59 "//llvm/lib/CodeGen/AsmPrinter",
60 "//llvm/lib/CodeGen/GlobalISel",
61 "//llvm/lib/CodeGen/SelectionDAG",
66 "//llvm/lib/Transforms/Scalar",
68 include_dirs = [ "." ]
70 "AArch64A53Fix835769.cpp",
71 "AArch64A57FPLoadBalancing.cpp",
72 "AArch64AdvSIMDScalarPass.cpp",
73 "AArch64AsmPrinter.cpp",
74 "AArch64BranchTargets.cpp",
75 "AArch64CallLowering.cpp",
76 "AArch64CallingConvention.cpp",
77 "AArch64CleanupLocalDynamicTLSPass.cpp",
78 "AArch64CollectLOH.cpp",
79 "AArch64CompressJumpTables.cpp",
80 "AArch64CondBrTuning.cpp",
81 "AArch64ConditionOptimizer.cpp",
82 "AArch64ConditionalCompares.cpp",
83 "AArch64DeadRegisterDefinitionsPass.cpp",
84 "AArch64ExpandImm.cpp",
85 "AArch64ExpandPseudoInsts.cpp",
86 "AArch64FalkorHWPFFix.cpp",
87 "AArch64FastISel.cpp",
88 "AArch64FrameLowering.cpp",
89 "AArch64ISelDAGToDAG.cpp",
90 "AArch64ISelLowering.cpp",
91 "AArch64InstrInfo.cpp",
92 "AArch64InstructionSelector.cpp",
93 "AArch64LegalizerInfo.cpp",
94 "AArch64LoadStoreOptimizer.cpp",
95 "AArch64MCInstLower.cpp",
96 "AArch64MacroFusion.cpp",
97 "AArch64PBQPRegAlloc.cpp",
98 "AArch64PreLegalizerCombiner.cpp",
99 "AArch64PromoteConstant.cpp",
100 "AArch64RedundantCopyElimination.cpp",
101 "AArch64RegisterBankInfo.cpp",
102 "AArch64RegisterInfo.cpp",
103 "AArch64SIMDInstrOpt.cpp",
104 "AArch64SelectionDAGInfo.cpp",
105 "AArch64SpeculationHardening.cpp",
106 "AArch64StackTagging.cpp",
107 "AArch64StorePairSuppress.cpp",
108 "AArch64Subtarget.cpp",
109 "AArch64TargetMachine.cpp",
110 "AArch64TargetObjectFile.cpp",
111 "AArch64TargetTransformInfo.cpp",
115 # This is a bit different from most build files: Due to this group
116 # having the directory's name, "//llvm/lib/Target/AArch64" will refer to this
117 # target, which pulls in the code in this directory *and all subdirectories*.
118 # For most other directories, "//llvm/lib/Foo" only pulls in the code directly
119 # in "llvm/lib/Foo". The forwarding targets in //llvm/lib/Target expect this
120 # different behavior.
123 ":LLVMAArch64CodeGen",