summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/FEntryInserter.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2019-04-10 21:29:41 +0000
committerCraig Topper <craig.topper@intel.com>2019-04-10 21:29:41 +0000
commit4a32ce39b79da1e8e3711807278524ee23933927 (patch)
tree265202be43eb8639660da5157fbac253eceaa0d1 /llvm/lib/CodeGen/FEntryInserter.cpp
parent3cc634d0936ecc1b48e158f687f9f6527bcd8fca (diff)
downloadbcm5719-llvm-4a32ce39b79da1e8e3711807278524ee23933927.tar.gz
bcm5719-llvm-4a32ce39b79da1e8e3711807278524ee23933927.zip
[X86] Make _Int instructions the preferred instructon for the assembly parser and disassembly parser to remove inconsistencies between VEX and EVEX.
Many of our instructions have both a _Int form used by intrinsics and a form used by other IR constructs. In the EVEX space the _Int versions usually cover all the capabilities include broadcasting and rounding. While the other version only covers simple register/register or register/load forms. For this reason in EVEX, the non intrinsic form is usually marked isCodeGenOnly=1. In the VEX encoding space we were less consistent, but usually the _Int version was the isCodeGenOnly version. This commit makes the VEX instructions match the EVEX instructions. This was done by manually studying the AsmMatcher table so its possible I missed some cases, but we should be closer now. I'm thinking about using the isCodeGenOnly bit to simplify the EVEX2VEX tablegen code that disambiguates the _Int and non _Int versions. Currently it checks register class sizes and Record the memory operands come from. I have some other changes I was looking into for D59266 that may break the memory check. I had to make a few scheduler hacks to keep the _Int versions from being treated differently than the non _Int version. Differential Revision: https://reviews.llvm.org/D60441 llvm-svn: 358138
Diffstat (limited to 'llvm/lib/CodeGen/FEntryInserter.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud