import("//llvm/utils/TableGen/tablegen.gni") tablegen("ARMGenCallingConv") { visibility = [ ":LLVMARMCodeGen" ] args = [ "-gen-callingconv" ] td_file = "ARM.td" } tablegen("ARMGenDAGISel") { visibility = [ ":LLVMARMCodeGen" ] args = [ "-gen-dag-isel" ] td_file = "ARM.td" } tablegen("ARMGenFastISel") { visibility = [ ":LLVMARMCodeGen" ] args = [ "-gen-fast-isel" ] td_file = "ARM.td" } tablegen("ARMGenGlobalISel") { visibility = [ ":LLVMARMCodeGen" ] args = [ "-gen-global-isel" ] td_file = "ARM.td" } tablegen("ARMGenMCPseudoLowering") { visibility = [ ":LLVMARMCodeGen" ] args = [ "-gen-pseudo-lowering" ] td_file = "ARM.td" } tablegen("ARMGenRegisterBank") { visibility = [ ":LLVMARMCodeGen" ] args = [ "-gen-register-bank" ] td_file = "ARM.td" } static_library("LLVMARMCodeGen") { deps = [ ":ARMGenCallingConv", ":ARMGenDAGISel", ":ARMGenFastISel", ":ARMGenGlobalISel", ":ARMGenMCPseudoLowering", ":ARMGenRegisterBank", "MCTargetDesc", "TargetInfo", "Utils", "//llvm/include/llvm/Config:llvm-config", "//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/Transforms/CFGuard", "//llvm/lib/Transforms/Utils", ] include_dirs = [ "." ] sources = [ "A15SDOptimizer.cpp", "ARMAsmPrinter.cpp", "ARMBaseInstrInfo.cpp", "ARMBaseRegisterInfo.cpp", "ARMBasicBlockInfo.cpp", "ARMBlockPlacement.cpp", "ARMCallLowering.cpp", "ARMCallingConv.cpp", "ARMConstantIslandPass.cpp", "ARMConstantPoolValue.cpp", "ARMExpandPseudoInsts.cpp", "ARMFastISel.cpp", "ARMFrameLowering.cpp", "ARMHazardRecognizer.cpp", "ARMISelDAGToDAG.cpp", "ARMISelLowering.cpp", "ARMInstrInfo.cpp", "ARMInstructionSelector.cpp", "ARMLegalizerInfo.cpp", "ARMLoadStoreOptimizer.cpp", "ARMLowOverheadLoops.cpp", "ARMMCInstLower.cpp", "ARMMachineFunctionInfo.cpp", "ARMMacroFusion.cpp", "ARMOptimizeBarriersPass.cpp", "ARMParallelDSP.cpp", "ARMRegisterBankInfo.cpp", "ARMRegisterInfo.cpp", "ARMSLSHardening.cpp", "ARMSelectionDAGInfo.cpp", "ARMSubtarget.cpp", "ARMTargetMachine.cpp", "ARMTargetObjectFile.cpp", "ARMTargetTransformInfo.cpp", "MLxExpansionPass.cpp", "MVEGatherScatterLowering.cpp", "MVETailPredication.cpp", "MVEVPTBlockPass.cpp", "MVEVPTOptimisationsPass.cpp", "Thumb1FrameLowering.cpp", "Thumb1InstrInfo.cpp", "Thumb2ITBlockPass.cpp", "Thumb2InstrInfo.cpp", "Thumb2SizeReduction.cpp", "ThumbRegisterInfo.cpp", ] } # This is a bit different from most build files: Due to this group # having the directory's name, "//llvm/lib/Target/ARM" 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("ARM") { deps = [ ":LLVMARMCodeGen", "AsmParser", "Disassembler", "MCTargetDesc", "TargetInfo", "Utils", ] }