1import("//llvm/utils/TableGen/tablegen.gni") 2 3tablegen("ARMGenCallingConv") { 4 visibility = [ ":LLVMARMCodeGen" ] 5 args = [ "-gen-callingconv" ] 6 td_file = "ARM.td" 7} 8 9tablegen("ARMGenDAGISel") { 10 visibility = [ ":LLVMARMCodeGen" ] 11 args = [ "-gen-dag-isel" ] 12 td_file = "ARM.td" 13} 14 15tablegen("ARMGenFastISel") { 16 visibility = [ ":LLVMARMCodeGen" ] 17 args = [ "-gen-fast-isel" ] 18 td_file = "ARM.td" 19} 20 21tablegen("ARMGenGlobalISel") { 22 visibility = [ ":LLVMARMCodeGen" ] 23 args = [ "-gen-global-isel" ] 24 td_file = "ARM.td" 25} 26 27tablegen("ARMGenMCPseudoLowering") { 28 visibility = [ ":LLVMARMCodeGen" ] 29 args = [ "-gen-pseudo-lowering" ] 30 td_file = "ARM.td" 31} 32 33tablegen("ARMGenRegisterBank") { 34 visibility = [ ":LLVMARMCodeGen" ] 35 args = [ "-gen-register-bank" ] 36 td_file = "ARM.td" 37} 38 39static_library("LLVMARMCodeGen") { 40 deps = [ 41 ":ARMGenCallingConv", 42 ":ARMGenDAGISel", 43 ":ARMGenFastISel", 44 ":ARMGenGlobalISel", 45 ":ARMGenMCPseudoLowering", 46 ":ARMGenRegisterBank", 47 "MCTargetDesc", 48 "TargetInfo", 49 "Utils", 50 "//llvm/include/llvm/Config:llvm-config", 51 "//llvm/lib/Analysis", 52 "//llvm/lib/CodeGen", 53 "//llvm/lib/CodeGen/AsmPrinter", 54 "//llvm/lib/CodeGen/GlobalISel", 55 "//llvm/lib/CodeGen/SelectionDAG", 56 "//llvm/lib/IR", 57 "//llvm/lib/MC", 58 "//llvm/lib/Support", 59 "//llvm/lib/Target", 60 ] 61 include_dirs = [ "." ] 62 sources = [ 63 "A15SDOptimizer.cpp", 64 "ARMAsmPrinter.cpp", 65 "ARMBaseInstrInfo.cpp", 66 "ARMBaseRegisterInfo.cpp", 67 "ARMBasicBlockInfo.cpp", 68 "ARMCallLowering.cpp", 69 "ARMCallingConv.cpp", 70 "ARMCodeGenPrepare.cpp", 71 "ARMConstantIslandPass.cpp", 72 "ARMConstantPoolValue.cpp", 73 "ARMExpandPseudoInsts.cpp", 74 "ARMFastISel.cpp", 75 "ARMFrameLowering.cpp", 76 "ARMHazardRecognizer.cpp", 77 "ARMISelDAGToDAG.cpp", 78 "ARMISelLowering.cpp", 79 "ARMInstrInfo.cpp", 80 "ARMInstructionSelector.cpp", 81 "ARMLegalizerInfo.cpp", 82 "ARMLoadStoreOptimizer.cpp", 83 "ARMLowOverheadLoops.cpp", 84 "ARMMCInstLower.cpp", 85 "ARMMachineFunctionInfo.cpp", 86 "ARMMacroFusion.cpp", 87 "ARMOptimizeBarriersPass.cpp", 88 "ARMParallelDSP.cpp", 89 "ARMRegisterBankInfo.cpp", 90 "ARMRegisterInfo.cpp", 91 "ARMSelectionDAGInfo.cpp", 92 "ARMSubtarget.cpp", 93 "ARMTargetMachine.cpp", 94 "ARMTargetObjectFile.cpp", 95 "ARMTargetTransformInfo.cpp", 96 "MLxExpansionPass.cpp", 97 "Thumb1FrameLowering.cpp", 98 "Thumb1InstrInfo.cpp", 99 "Thumb2ITBlockPass.cpp", 100 "Thumb2InstrInfo.cpp", 101 "Thumb2SizeReduction.cpp", 102 "ThumbRegisterInfo.cpp", 103 ] 104} 105 106# This is a bit different from most build files: Due to this group 107# having the directory's name, "//llvm/lib/Target/ARM" will refer to this 108# target, which pulls in the code in this directory *and all subdirectories*. 109# For most other directories, "//llvm/lib/Foo" only pulls in the code directly 110# in "llvm/lib/Foo". The forwarding targets in //llvm/lib/Target expect this 111# different behavior. 112group("ARM") { 113 deps = [ 114 ":LLVMARMCodeGen", 115 "AsmParser", 116 "Disassembler", 117 "MCTargetDesc", 118 "TargetInfo", 119 "Utils", 120 ] 121} 122