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 "X86AvoidTrailingCall.cpp",
81 "X86CallFrameOptimization.cpp",
82 "X86CallLowering.cpp",
84 "X86CmovConversion.cpp",
85 "X86CondBrFolding.cpp",
86 "X86DiscriminateMemOps.cpp",
87 "X86DomainReassignment.cpp",
89 "X86ExpandPseudo.cpp",
91 "X86FixupBWInsts.cpp",
94 "X86FlagsCopyLowering.cpp",
95 "X86FloatingPoint.cpp",
96 "X86FrameLowering.cpp",
97 "X86ISelDAGToDAG.cpp",
98 "X86ISelLowering.cpp",
99 "X86IndirectBranchTracking.cpp",
100 "X86InsertPrefetch.cpp",
101 "X86InstrFMA3Info.cpp",
102 "X86InstrFoldTables.cpp",
104 "X86InstructionSelector.cpp",
105 "X86InterleavedAccess.cpp",
106 "X86LegalizerInfo.cpp",
107 "X86MCInstLower.cpp",
108 "X86MachineFunctionInfo.cpp",
109 "X86MacroFusion.cpp",
110 "X86OptimizeLEAs.cpp",
111 "X86PadShortFunction.cpp",
112 "X86RegisterBankInfo.cpp",
113 "X86RegisterInfo.cpp",
114 "X86RetpolineThunks.cpp",
115 "X86SelectionDAGInfo.cpp",
116 "X86ShuffleDecodeConstantPool.cpp",
117 "X86SpeculativeLoadHardening.cpp",
119 "X86TargetMachine.cpp",
120 "X86TargetObjectFile.cpp",
121 "X86TargetTransformInfo.cpp",
123 "X86WinAllocaExpander.cpp",
128 # This is a bit different from most build files: Due to this group
129 # having the directory's name, "//llvm/lib/Target/X86" will refer to this
130 # target, which pulls in the code in this directory *and all subdirectories*.
131 # For most other directories, "//llvm/lib/Foo" only pulls in the code directly
132 # in "llvm/lib/Foo". The forwarding targets in //llvm/lib/Target expect this
133 # different behavior.