| 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", |
| "InstPrinter", |
| "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", |
| ] |
| include_dirs = [ "." ] |
| sources = [ |
| "A15SDOptimizer.cpp", |
| "ARMAsmPrinter.cpp", |
| "ARMBaseInstrInfo.cpp", |
| "ARMBaseRegisterInfo.cpp", |
| "ARMCallLowering.cpp", |
| "ARMCodeGenPrepare.cpp", |
| "ARMComputeBlockSize.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", |
| "ARMMCInstLower.cpp", |
| "ARMMachineFunctionInfo.cpp", |
| "ARMMacroFusion.cpp", |
| "ARMOptimizeBarriersPass.cpp", |
| "ARMParallelDSP.cpp", |
| "ARMRegisterBankInfo.cpp", |
| "ARMRegisterInfo.cpp", |
| "ARMSelectionDAGInfo.cpp", |
| "ARMSubtarget.cpp", |
| "ARMTargetMachine.cpp", |
| "ARMTargetObjectFile.cpp", |
| "ARMTargetTransformInfo.cpp", |
| "MLxExpansionPass.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/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("ARM") { |
| deps = [ |
| ":LLVMARMCodeGen", |
| "AsmParser", |
| "Disassembler", |
| "InstPrinter", |
| "MCTargetDesc", |
| "TargetInfo", |
| "Utils", |
| ] |
| } |