diff --git a/llvm/lib/Target/X86/CMakeLists.txt b/llvm/lib/Target/X86/CMakeLists.txt --- a/llvm/lib/Target/X86/CMakeLists.txt +++ b/llvm/lib/Target/X86/CMakeLists.txt @@ -18,10 +18,7 @@ tablegen(LLVM X86GenRegisterBank.inc -gen-register-bank) tablegen(LLVM X86GenRegisterInfo.inc -gen-register-info) tablegen(LLVM X86GenSubtargetInfo.inc -gen-subtarget) - -if (X86_GEN_FOLD_TABLES) - tablegen(LLVM X86GenFoldTables.inc -gen-x86-fold-tables -asmwriternum=1) -endif() +tablegen(LLVM X86GenFoldTables.inc -gen-x86-fold-tables -asmwriternum=1) add_public_tablegen_target(X86CommonTableGen) diff --git a/llvm/lib/Target/X86/X86InstrFoldTables.cpp b/llvm/lib/Target/X86/X86InstrFoldTables.cpp --- a/llvm/lib/Target/X86/X86InstrFoldTables.cpp +++ b/llvm/lib/Target/X86/X86InstrFoldTables.cpp @@ -22,18 +22,7 @@ // searched at runtime without the need for additional storage. The enum values // are currently emitted in X86GenInstrInfo.inc in alphabetical order. Which // makes sorting these tables a simple matter of alphabetizing the table. -// -// We also have a tablegen emitter that tries to autogenerate these tables -// by comparing encoding information. This can be enabled by passing -// X86_GEN_FOLD_TABLES=ON to cmake which fill produce X86GenFoldTables.inc -// in the build area. There are currently some bugs in the autogenerated table -// that require a manual review to copy them from the autogenerated table into -// this table. It is unclear if we will ever be able to fully automate this -// because as new instruction are added into holes in the X86 opcode map they -// potentially pair up with old instructions and create new entries in the -// tables that would be incorrect. The manual review process allows us a chance -// to catch these before they become observable bugs. -#include "X86MemFoldTables.inc" +#include "X86GenFoldTables.inc" static const X86MemoryFoldTableEntry BroadcastFoldTable2[] = { { X86::VADDPDZ128rr, X86::VADDPDZ128rmb, TB_BCAST_SD }, { X86::VADDPDZ256rr, X86::VADDPDZ256rmb, TB_BCAST_SD }, diff --git a/llvm/lib/Target/X86/X86MemFoldTables.inc b/llvm/test/TableGen/x86-fold-tables.inc rename from llvm/lib/Target/X86/X86MemFoldTables.inc rename to llvm/test/TableGen/x86-fold-tables.inc diff --git a/llvm/test/TableGen/x86-memory-folding.td b/llvm/test/TableGen/x86-memory-folding.td --- a/llvm/test/TableGen/x86-memory-folding.td +++ b/llvm/test/TableGen/x86-memory-folding.td @@ -1,2 +1,2 @@ // RUN: llvm-tblgen -gen-x86-fold-tables -asmwriternum=1 %p/../../lib/Target/X86/X86.td -I %p/../../lib/Target/X86 -I %p/../../include -o %t1 -// RUN: cmp %p/../../lib/Target/X86/X86MemFoldTables.inc %t1 +// RUN: diff %p/x86-fold-tables.inc %t1