[PATCH] D147527: [X86][mem-fold] Use the generated memory folding table
Kan Shengchen via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 6 04:50:01 PDT 2023
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGf3d9abf1f87c: [X86][mem-fold] Use the generated memory folding table (authored by skan).
Changed prior to commit:
https://reviews.llvm.org/D147527?vs=511368&id=511372#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D147527/new/
https://reviews.llvm.org/D147527
Files:
llvm/lib/Target/X86/CMakeLists.txt
llvm/lib/Target/X86/X86InstrFoldTables.cpp
llvm/lib/Target/X86/X86MemFoldTables.inc
llvm/test/TableGen/x86-fold-tables.inc
llvm/test/TableGen/x86-fold-tables.td
llvm/test/TableGen/x86-memory-folding.td
Index: llvm/test/TableGen/x86-memory-folding.td
===================================================================
--- llvm/test/TableGen/x86-memory-folding.td
+++ /dev/null
@@ -1,2 +0,0 @@
-// 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
Index: llvm/test/TableGen/x86-fold-tables.td
===================================================================
--- /dev/null
+++ llvm/test/TableGen/x86-fold-tables.td
@@ -0,0 +1,7 @@
+// Steps to fix this test if it fails:
+// 1. Update X86ManualFoldTables.def to manually correct the entries in fold tables, or
+// fix the vulnerable rules in X86FoldTablesEmitter.cpp until the diff is reasonable
+// 2. cp <generated_file> x86-fold-tables.inc
+
+// RUN: llvm-tblgen -gen-x86-fold-tables -asmwriternum=1 %p/../../lib/Target/X86/X86.td -I %p/../../lib/Target/X86 -I %p/../../include -o %t
+// RUN: diff %p/x86-fold-tables.inc %t
Index: llvm/lib/Target/X86/X86InstrFoldTables.cpp
===================================================================
--- llvm/lib/Target/X86/X86InstrFoldTables.cpp
+++ 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 },
Index: llvm/lib/Target/X86/CMakeLists.txt
===================================================================
--- llvm/lib/Target/X86/CMakeLists.txt
+++ 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)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D147527.511372.patch
Type: text/x-patch
Size: 3127 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230406/3b8026f1/attachment.bin>
More information about the llvm-commits
mailing list