1import("//llvm/utils/TableGen/tablegen.gni") 2 3tablegen("NVPTXGenDAGISel") { 4 visibility = [ ":LLVMNVPTXCodeGen" ] 5 args = [ "-gen-dag-isel" ] 6 td_file = "NVPTX.td" 7} 8 9static_library("LLVMNVPTXCodeGen") { 10 deps = [ 11 ":NVPTXGenDAGISel", 12 "MCTargetDesc", 13 "TargetInfo", 14 "//llvm/include/llvm/Config:llvm-config", 15 "//llvm/lib/Analysis", 16 "//llvm/lib/CodeGen", 17 "//llvm/lib/CodeGen/AsmPrinter", 18 "//llvm/lib/CodeGen/SelectionDAG", 19 "//llvm/lib/IR", 20 "//llvm/lib/MC", 21 "//llvm/lib/Support", 22 "//llvm/lib/Target", 23 "//llvm/lib/Transforms/IPO", 24 "//llvm/lib/Transforms/Scalar", 25 "//llvm/lib/Transforms/Utils", 26 "//llvm/lib/Transforms/Vectorize", 27 ] 28 include_dirs = [ "." ] 29 sources = [ 30 "NVPTXAllocaHoisting.cpp", 31 "NVPTXAsmPrinter.cpp", 32 "NVPTXAssignValidGlobalNames.cpp", 33 "NVPTXFrameLowering.cpp", 34 "NVPTXGenericToNVVM.cpp", 35 "NVPTXISelDAGToDAG.cpp", 36 "NVPTXISelLowering.cpp", 37 "NVPTXImageOptimizer.cpp", 38 "NVPTXInstrInfo.cpp", 39 "NVPTXLowerAggrCopies.cpp", 40 "NVPTXLowerAlloca.cpp", 41 "NVPTXLowerArgs.cpp", 42 "NVPTXMCExpr.cpp", 43 "NVPTXPeephole.cpp", 44 "NVPTXPrologEpilogPass.cpp", 45 "NVPTXProxyRegErasure.cpp", 46 "NVPTXRegisterInfo.cpp", 47 "NVPTXReplaceImageHandles.cpp", 48 "NVPTXSubtarget.cpp", 49 "NVPTXTargetMachine.cpp", 50 "NVPTXTargetTransformInfo.cpp", 51 "NVPTXUtilities.cpp", 52 "NVVMIntrRange.cpp", 53 "NVVMReflect.cpp", 54 ] 55} 56 57# This is a bit different from most build files: Due to this group 58# having the directory's name, "//llvm/lib/Target/NVPTX" will refer to this 59# target, which pulls in the code in this directory *and all subdirectories*. 60# For most other directories, "//llvm/lib/Foo" only pulls in the code directly 61# in "llvm/lib/Foo". The forwarding targets in //llvm/lib/Target expect this 62# different behavior. 63group("NVPTX") { 64 deps = [ 65 ":LLVMNVPTXCodeGen", 66 "MCTargetDesc", 67 "TargetInfo", 68 ] 69} 70