| import("//llvm/utils/TableGen/tablegen.gni") |
| |
| declare_args() { |
| # Buggy, only use if you know what you're doing. |
| x86_gen_fold_tables = false |
| } |
| |
| tablegen("X86GenCallingConv") { |
| visibility = [ ":LLVMX86CodeGen" ] |
| args = [ "-gen-callingconv" ] |
| td_file = "X86.td" |
| } |
| |
| tablegen("X86GenDAGISel") { |
| visibility = [ ":LLVMX86CodeGen" ] |
| args = [ "-gen-dag-isel" ] |
| td_file = "X86.td" |
| } |
| |
| tablegen("X86GenEVEX2VEXTables") { |
| visibility = [ ":LLVMX86CodeGen" ] |
| args = [ "-gen-x86-EVEX2VEX-tables" ] |
| td_file = "X86.td" |
| } |
| |
| tablegen("X86GenFastISel") { |
| visibility = [ ":LLVMX86CodeGen" ] |
| args = [ "-gen-fast-isel" ] |
| td_file = "X86.td" |
| } |
| |
| tablegen("X86GenGlobalISel") { |
| visibility = [ ":LLVMX86CodeGen" ] |
| args = [ "-gen-global-isel" ] |
| td_file = "X86.td" |
| } |
| |
| tablegen("X86GenRegisterBank") { |
| visibility = [ ":LLVMX86CodeGen" ] |
| args = [ "-gen-register-bank" ] |
| td_file = "X86.td" |
| } |
| |
| if (x86_gen_fold_tables) { |
| tablegen("X86GenFoldTables") { |
| visibility = [ ":LLVMX86CodeGen" ] |
| args = [ "-gen-x86-fold-tables" ] |
| td_file = "X86.td" |
| } |
| } |
| |
| static_library("LLVMX86CodeGen") { |
| deps = [ |
| ":X86GenCallingConv", |
| ":X86GenDAGISel", |
| ":X86GenEVEX2VEXTables", |
| ":X86GenFastISel", |
| ":X86GenGlobalISel", |
| ":X86GenRegisterBank", |
| "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", |
| "//llvm/lib/Transforms/CFGuard", |
| ] |
| if (x86_gen_fold_tables) { |
| deps += [ ":X86GenFoldTables" ] |
| } |
| sources = [ |
| "X86AsmPrinter.cpp", |
| "X86AvoidStoreForwardingBlocks.cpp", |
| "X86AvoidTrailingCall.cpp", |
| "X86CallFrameOptimization.cpp", |
| "X86CallLowering.cpp", |
| "X86CallingConv.cpp", |
| "X86CmovConversion.cpp", |
| "X86CondBrFolding.cpp", |
| "X86DiscriminateMemOps.cpp", |
| "X86DomainReassignment.cpp", |
| "X86EvexToVex.cpp", |
| "X86ExpandPseudo.cpp", |
| "X86FastISel.cpp", |
| "X86FixupBWInsts.cpp", |
| "X86FixupLEAs.cpp", |
| "X86FixupSetCC.cpp", |
| "X86FlagsCopyLowering.cpp", |
| "X86FloatingPoint.cpp", |
| "X86FrameLowering.cpp", |
| "X86ISelDAGToDAG.cpp", |
| "X86ISelLowering.cpp", |
| "X86IndirectBranchTracking.cpp", |
| "X86IndirectThunks.cpp", |
| "X86InsertPrefetch.cpp", |
| "X86InsertWait.cpp", |
| "X86InstrFMA3Info.cpp", |
| "X86InstrFoldTables.cpp", |
| "X86InstrInfo.cpp", |
| "X86InstructionSelector.cpp", |
| "X86InterleavedAccess.cpp", |
| "X86LegalizerInfo.cpp", |
| "X86LoadValueInjectionRetHardening.cpp", |
| "X86MCInstLower.cpp", |
| "X86MachineFunctionInfo.cpp", |
| "X86MacroFusion.cpp", |
| "X86OptimizeLEAs.cpp", |
| "X86PadShortFunction.cpp", |
| "X86PartialReduction.cpp", |
| "X86RegisterBankInfo.cpp", |
| "X86RegisterInfo.cpp", |
| "X86SelectionDAGInfo.cpp", |
| "X86ShuffleDecodeConstantPool.cpp", |
| "X86SpeculativeLoadHardening.cpp", |
| "X86Subtarget.cpp", |
| "X86TargetMachine.cpp", |
| "X86TargetObjectFile.cpp", |
| "X86TargetTransformInfo.cpp", |
| "X86VZeroUpper.cpp", |
| "X86WinAllocaExpander.cpp", |
| "X86WinEHState.cpp", |
| ] |
| } |
| |
| # This is a bit different from most build files: Due to this group |
| # having the directory's name, "//llvm/lib/Target/X86" 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("X86") { |
| deps = [ |
| ":LLVMX86CodeGen", |
| "AsmParser", |
| "Disassembler", |
| "MCTargetDesc", |
| "TargetInfo", |
| "Utils", |
| ] |
| } |