summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen/TableGen.cpp
diff options
context:
space:
mode:
authorAyman Musa <ayman.musa@intel.com>2017-03-07 08:11:19 +0000
committerAyman Musa <ayman.musa@intel.com>2017-03-07 08:11:19 +0000
commit850fc977c807984bcc583e1dede4b9113f1657c3 (patch)
tree505434c15a722dc53875500f702e18af6c76eeae /llvm/utils/TableGen/TableGen.cpp
parentac5a2c43af283fba87887de67f05c547c9fd1778 (diff)
downloadbcm5719-llvm-850fc977c807984bcc583e1dede4b9113f1657c3.tar.gz
bcm5719-llvm-850fc977c807984bcc583e1dede4b9113f1657c3.zip
[X86][AVX512] Adding new LLVM TableGen backend which generates the EVEX2VEX compressing tables.
X86EvexToVex machine instruction pass compresses EVEX encoded instructions by replacing them with their identical VEX encoded instructions when possible. It uses manually supported 2 large tables that map the EVEX instructions to their VEX ideticals. This TableGen backend replaces the tables by automatically generating them. Differential Revision: https://reviews.llvm.org/D30451 llvm-svn: 297127
Diffstat (limited to 'llvm/utils/TableGen/TableGen.cpp')
-rw-r--r--llvm/utils/TableGen/TableGen.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/TableGen.cpp b/llvm/utils/TableGen/TableGen.cpp
index 6937f20b441..aa1aefd5e4a 100644
--- a/llvm/utils/TableGen/TableGen.cpp
+++ b/llvm/utils/TableGen/TableGen.cpp
@@ -46,6 +46,7 @@ enum ActionType {
GenAttributes,
GenSearchableTables,
GenGlobalISel,
+ GenX86EVEX2VEXTables,
GenRegisterBank,
};
@@ -96,6 +97,8 @@ namespace {
"Generate generic binary-searchable table"),
clEnumValN(GenGlobalISel, "gen-global-isel",
"Generate GlobalISel selector"),
+ clEnumValN(GenX86EVEX2VEXTables, "gen-x86-EVEX2VEX-tables",
+ "Generate X86 EVEX to VEX compress tables"),
clEnumValN(GenRegisterBank, "gen-register-bank",
"Generate registers bank descriptions")));
@@ -189,6 +192,9 @@ bool LLVMTableGenMain(raw_ostream &OS, RecordKeeper &Records) {
case GenRegisterBank:
EmitRegisterBank(Records, OS);
break;
+ case GenX86EVEX2VEXTables:
+ EmitX86EVEX2VEXTables(Records, OS);
+ break;
}
return false;
OpenPOWER on IntegriCloud