| import("//llvm/utils/TableGen/tablegen.gni") |
| |
| tablegen("AArch64GenCallingConv") { |
| visibility = [ ":LLVMAArch64CodeGen" ] |
| args = [ "-gen-callingconv" ] |
| td_file = "AArch64.td" |
| } |
| |
| tablegen("AArch64GenDAGISel") { |
| visibility = [ ":LLVMAArch64CodeGen" ] |
| args = [ "-gen-dag-isel" ] |
| td_file = "AArch64.td" |
| } |
| |
| tablegen("AArch64GenFastISel") { |
| visibility = [ ":LLVMAArch64CodeGen" ] |
| args = [ "-gen-fast-isel" ] |
| td_file = "AArch64.td" |
| } |
| |
| tablegen("AArch64GenO0PreLegalizeGICombiner") { |
| visibility = [ ":LLVMAArch64CodeGen" ] |
| args = [ |
| "-gen-global-isel-combiner-matchtable", |
| "-combiners=AArch64O0PreLegalizerCombiner", |
| ] |
| td_file = "AArch64.td" |
| } |
| |
| tablegen("AArch64GenGlobalISel") { |
| visibility = [ ":LLVMAArch64CodeGen" ] |
| args = [ "-gen-global-isel" ] |
| td_file = "AArch64.td" |
| } |
| |
| tablegen("AArch64GenMCPseudoLowering") { |
| visibility = [ ":LLVMAArch64CodeGen" ] |
| args = [ "-gen-pseudo-lowering" ] |
| td_file = "AArch64.td" |
| } |
| |
| tablegen("AArch64GenPostLegalizeGICombiner") { |
| visibility = [ ":LLVMAArch64CodeGen" ] |
| args = [ |
| "-gen-global-isel-combiner-matchtable", |
| "-combiners=AArch64PostLegalizerCombiner", |
| ] |
| td_file = "AArch64.td" |
| } |
| |
| tablegen("AArch64GenPreLegalizeGICombiner") { |
| visibility = [ ":LLVMAArch64CodeGen" ] |
| args = [ |
| "-gen-global-isel-combiner-matchtable", |
| "-combiners=AArch64PreLegalizerCombiner", |
| ] |
| td_file = "AArch64.td" |
| } |
| |
| tablegen("AArch64GenPostLegalizeGILowering") { |
| visibility = [ ":LLVMAArch64CodeGen" ] |
| args = [ |
| "-gen-global-isel-combiner-matchtable", |
| "-combiners=AArch64PostLegalizerLowering", |
| ] |
| td_file = "AArch64.td" |
| } |
| |
| tablegen("AArch64GenRegisterBank") { |
| visibility = [ ":LLVMAArch64CodeGen" ] |
| args = [ "-gen-register-bank" ] |
| td_file = "AArch64.td" |
| } |
| |
| static_library("LLVMAArch64CodeGen") { |
| deps = [ |
| ":AArch64GenCallingConv", |
| ":AArch64GenDAGISel", |
| ":AArch64GenFastISel", |
| ":AArch64GenGlobalISel", |
| ":AArch64GenMCPseudoLowering", |
| ":AArch64GenO0PreLegalizeGICombiner", |
| ":AArch64GenPostLegalizeGICombiner", |
| ":AArch64GenPostLegalizeGILowering", |
| ":AArch64GenPreLegalizeGICombiner", |
| ":AArch64GenRegisterBank", |
| |
| # See https://reviews.llvm.org/D69130 |
| "AsmParser:AArch64GenAsmMatcher", |
| "MCTargetDesc", |
| "TargetInfo", |
| "Utils", |
| "//llvm/lib/Analysis", |
| "//llvm/lib/CodeGen", |
| "//llvm/lib/CodeGen/AsmPrinter", |
| "//llvm/lib/CodeGen/GlobalISel", |
| "//llvm/lib/CodeGen/SelectionDAG", |
| "//llvm/lib/IR", |
| "//llvm/lib/MC", |
| "//llvm/lib/Support", |
| "//llvm/lib/Target", |
| "//llvm/lib/TargetParser", |
| "//llvm/lib/Transforms/CFGuard", |
| "//llvm/lib/Transforms/Scalar", |
| "//llvm/lib/Transforms/Utils", |
| ] |
| include_dirs = [ "." ] |
| sources = [ |
| "AArch64A53Fix835769.cpp", |
| "AArch64A57FPLoadBalancing.cpp", |
| "AArch64AdvSIMDScalarPass.cpp", |
| "AArch64AsmPrinter.cpp", |
| "AArch64BranchTargets.cpp", |
| "AArch64CallingConvention.cpp", |
| "AArch64CleanupLocalDynamicTLSPass.cpp", |
| "AArch64CollectLOH.cpp", |
| "AArch64CompressJumpTables.cpp", |
| "AArch64CondBrTuning.cpp", |
| "AArch64ConditionOptimizer.cpp", |
| "AArch64ConditionalCompares.cpp", |
| "AArch64DeadRegisterDefinitionsPass.cpp", |
| "AArch64ExpandImm.cpp", |
| "AArch64ExpandPseudoInsts.cpp", |
| "AArch64FalkorHWPFFix.cpp", |
| "AArch64FastISel.cpp", |
| "AArch64FrameLowering.cpp", |
| "AArch64GlobalsTagging.cpp", |
| "AArch64ISelDAGToDAG.cpp", |
| "AArch64ISelLowering.cpp", |
| "AArch64InstrInfo.cpp", |
| "AArch64LoadStoreOptimizer.cpp", |
| "AArch64LowerHomogeneousPrologEpilog.cpp", |
| "AArch64MCInstLower.cpp", |
| "AArch64MIPeepholeOpt.cpp", |
| "AArch64MachineFunctionInfo.cpp", |
| "AArch64MachineScheduler.cpp", |
| "AArch64MacroFusion.cpp", |
| "AArch64PBQPRegAlloc.cpp", |
| "AArch64PromoteConstant.cpp", |
| "AArch64RedundantCopyElimination.cpp", |
| "AArch64RegisterInfo.cpp", |
| "AArch64SIMDInstrOpt.cpp", |
| "AArch64SLSHardening.cpp", |
| "AArch64SelectionDAGInfo.cpp", |
| "AArch64SpeculationHardening.cpp", |
| "AArch64StackTagging.cpp", |
| "AArch64StackTaggingPreRA.cpp", |
| "AArch64StorePairSuppress.cpp", |
| "AArch64Subtarget.cpp", |
| "AArch64TargetMachine.cpp", |
| "AArch64TargetObjectFile.cpp", |
| "AArch64TargetTransformInfo.cpp", |
| "GISel/AArch64CallLowering.cpp", |
| "GISel/AArch64GlobalISelUtils.cpp", |
| "GISel/AArch64InstructionSelector.cpp", |
| "GISel/AArch64LegalizerInfo.cpp", |
| "GISel/AArch64O0PreLegalizerCombiner.cpp", |
| "GISel/AArch64PostLegalizerCombiner.cpp", |
| "GISel/AArch64PostLegalizerLowering.cpp", |
| "GISel/AArch64PostSelectOptimize.cpp", |
| "GISel/AArch64PreLegalizerCombiner.cpp", |
| "GISel/AArch64RegisterBankInfo.cpp", |
| "SMEABIPass.cpp", |
| "SVEIntrinsicOpts.cpp", |
| ] |
| } |
| |
| # This is a bit different from most build files: Due to this group |
| # having the directory's name, "//llvm/lib/Target/AArch64" will refer to this |
| # target, which pulls in the code in this directory *and all subdirectories*. |
| # For most other directories, "//llvm/lib/Foo" only pulls in the code directly |
| # in "llvm/lib/Foo". The forwarding targets in //llvm/lib/Target expect this |
| # different behavior. |
| group("AArch64") { |
| deps = [ |
| ":LLVMAArch64CodeGen", |
| "AsmParser", |
| "Disassembler", |
| "MCTargetDesc", |
| "TargetInfo", |
| "Utils", |
| ] |
| } |