1 import("//llvm/utils/TableGen/tablegen.gni")
4 # Buggy, only use if you know what you're doing.
5 x86_gen_fold_tables = false
8 tablegen("X86GenCallingConv") {
9 visibility = [ ":LLVMX86CodeGen" ]
10 args = [ "-gen-callingconv" ]
14 tablegen("X86GenDAGISel") {
15 visibility = [ ":LLVMX86CodeGen" ]
16 args = [ "-gen-dag-isel" ]
20 tablegen("X86GenEVEX2VEXTables") {
21 visibility = [ ":LLVMX86CodeGen" ]
22 args = [ "-gen-x86-EVEX2VEX-tables" ]
26 tablegen("X86GenFastISel") {
27 visibility = [ ":LLVMX86CodeGen" ]
28 args = [ "-gen-fast-isel" ]
32 tablegen("X86GenGlobalISel") {
33 visibility = [ ":LLVMX86CodeGen" ]
34 args = [ "-gen-global-isel" ]
38 tablegen("X86GenRegisterBank") {
39 visibility = [ ":LLVMX86CodeGen" ]
40 args = [ "-gen-register-bank" ]
44 if (x86_gen_fold_tables) {
45 tablegen("X86GenFoldTables") {
46 visibility = [ ":LLVMX86CodeGen" ]
47 args = [ "-gen-x86-fold-tables" ]
52 static_library("LLVMX86CodeGen") {
56 ":X86GenEVEX2VEXTables",
59 ":X86GenRegisterBank",
63 "//llvm/include/llvm/Config:llvm-config",
64 "//llvm/lib/Analysis",
66 "//llvm/lib/CodeGen/AsmPrinter",
67 "//llvm/lib/CodeGen/GlobalISel",
68 "//llvm/lib/CodeGen/SelectionDAG",
74 if (x86_gen_fold_tables) {
75 deps += [ ":X86GenFoldTables" ]
79 "X86AvoidStoreForwardingBlocks.cpp",
80 "X86CallFrameOptimization.cpp",
81 "X86CallLowering.cpp",
83 "X86CmovConversion.cpp",
84 "X86CondBrFolding.cpp",
85 "X86DiscriminateMemOps.cpp",
86 "X86DomainReassignment.cpp",
88 "X86ExpandPseudo.cpp",
90 "X86FixupBWInsts.cpp",
93 "X86FlagsCopyLowering.cpp",
94 "X86FloatingPoint.cpp",
95 "X86FrameLowering.cpp",
96 "X86ISelDAGToDAG.cpp",
97 "X86ISelLowering.cpp",
98 "X86IndirectBranchTracking.cpp",
99 "X86InsertPrefetch.cpp",
100 "X86InstrFMA3Info.cpp",
101 "X86InstrFoldTables.cpp",
103 "X86InstructionSelector.cpp",
104 "X86InterleavedAccess.cpp",
105 "X86LegalizerInfo.cpp",
106 "X86MCInstLower.cpp",
107 "X86MachineFunctionInfo.cpp",
108 "X86MacroFusion.cpp",
109 "X86OptimizeLEAs.cpp",
110 "X86PadShortFunction.cpp",
111 "X86RegisterBankInfo.cpp",
112 "X86RegisterInfo.cpp",
113 "X86RetpolineThunks.cpp",
114 "X86SelectionDAGInfo.cpp",
115 "X86ShuffleDecodeConstantPool.cpp",
116 "X86SpeculativeLoadHardening.cpp",
118 "X86TargetMachine.cpp",
119 "X86TargetObjectFile.cpp",
120 "X86TargetTransformInfo.cpp",
122 "X86WinAllocaExpander.cpp",
127 # This is a bit different from most build files: Due to this group
128 # having the directory's name, "//llvm/lib/Target/X86" will refer to this
129 # target, which pulls in the code in this directory *and all subdirectories*.
130 # For most other directories, "//llvm/lib/Foo" only pulls in the code directly
131 # in "llvm/lib/Foo". The forwarding targets in //llvm/lib/Target expect this
132 # different behavior.