1 import("//llvm/utils/TableGen/tablegen.gni")
3 tablegen("WebAssemblyGenCallingConv") {
4 visibility = [ ":LLVMWebAssemblyCodeGen" ]
5 args = [ "-gen-callingconv" ]
6 td_file = "WebAssembly.td"
9 tablegen("WebAssemblyGenDAGISel") {
10 visibility = [ ":LLVMWebAssemblyCodeGen" ]
11 args = [ "-gen-dag-isel" ]
12 td_file = "WebAssembly.td"
15 tablegen("WebAssemblyGenFastISel") {
16 visibility = [ ":LLVMWebAssemblyCodeGen" ]
17 args = [ "-gen-fast-isel" ]
18 td_file = "WebAssembly.td"
21 tablegen("WebAssemblyGenGlobalISel") {
22 visibility = [ ":LLVMWebAssemblyCodeGen" ]
23 args = [ "-gen-global-isel" ]
24 td_file = "WebAssembly.td"
27 tablegen("WebAssemblyGenMCPseudoLowering") {
28 visibility = [ ":LLVMWebAssemblyCodeGen" ]
29 args = [ "-gen-pseudo-lowering" ]
30 td_file = "WebAssembly.td"
33 tablegen("WebAssemblyGenRegisterBank") {
34 visibility = [ ":LLVMWebAssemblyCodeGen" ]
35 args = [ "-gen-register-bank" ]
36 td_file = "WebAssembly.td"
39 static_library("LLVMWebAssemblyCodeGen") {
41 ":WebAssemblyGenCallingConv",
42 ":WebAssemblyGenDAGISel",
43 ":WebAssemblyGenFastISel",
44 ":WebAssemblyGenGlobalISel",
45 ":WebAssemblyGenMCPseudoLowering",
46 ":WebAssemblyGenRegisterBank",
49 "//llvm/include/llvm/Config:llvm-config",
50 "//llvm/lib/Analysis",
52 "//llvm/lib/CodeGen/AsmPrinter",
53 "//llvm/lib/CodeGen/GlobalISel",
54 "//llvm/lib/CodeGen/SelectionDAG",
60 include_dirs = [ "." ]
62 "WebAssemblyAddMissingPrototypes.cpp",
63 "WebAssemblyArgumentMove.cpp",
64 "WebAssemblyAsmPrinter.cpp",
65 "WebAssemblyCFGSort.cpp",
66 "WebAssemblyCFGStackify.cpp",
67 "WebAssemblyCallIndirectFixup.cpp",
68 "WebAssemblyDebugValueManager.cpp",
69 "WebAssemblyExceptionInfo.cpp",
70 "WebAssemblyExplicitLocals.cpp",
71 "WebAssemblyFastISel.cpp",
72 "WebAssemblyFixFunctionBitcasts.cpp",
73 "WebAssemblyFixIrreducibleControlFlow.cpp",
74 "WebAssemblyFrameLowering.cpp",
75 "WebAssemblyISelDAGToDAG.cpp",
76 "WebAssemblyISelLowering.cpp",
77 "WebAssemblyInstrInfo.cpp",
78 "WebAssemblyLateEHPrepare.cpp",
79 "WebAssemblyLowerBrUnless.cpp",
80 "WebAssemblyLowerEmscriptenEHSjLj.cpp",
81 "WebAssemblyLowerGlobalDtors.cpp",
82 "WebAssemblyMCInstLower.cpp",
83 "WebAssemblyMachineFunctionInfo.cpp",
84 "WebAssemblyMemIntrinsicResults.cpp",
85 "WebAssemblyOptimizeLiveIntervals.cpp",
86 "WebAssemblyOptimizeReturned.cpp",
87 "WebAssemblyPeephole.cpp",
88 "WebAssemblyPrepareForLiveIntervals.cpp",
89 "WebAssemblyRegColoring.cpp",
90 "WebAssemblyRegNumbering.cpp",
91 "WebAssemblyRegStackify.cpp",
92 "WebAssemblyRegisterInfo.cpp",
93 "WebAssemblyReplacePhysRegs.cpp",
94 "WebAssemblyRuntimeLibcallSignatures.cpp",
95 "WebAssemblySelectionDAGInfo.cpp",
96 "WebAssemblySetP2AlignOperands.cpp",
97 "WebAssemblySubtarget.cpp",
98 "WebAssemblyTargetMachine.cpp",
99 "WebAssemblyTargetObjectFile.cpp",
100 "WebAssemblyTargetTransformInfo.cpp",
101 "WebAssemblyUtilities.cpp",
105 # This is a bit different from most build files: Due to this group
106 # having the directory's name, "//llvm/lib/Target/AArch64" will refer to this
107 # target, which pulls in the code in this directory *and all subdirectories*.
108 # For most other directories, "//llvm/lib/Foo" only pulls in the code directly
109 # in "llvm/lib/Foo". The forwarding targets in //llvm/lib/Target expect this
110 # different behavior.
111 group("WebAssembly") {
113 ":LLVMWebAssemblyCodeGen",