[asm matcher] Fix incorrect assertion when there are exactly 32 SubtargetFeatures
authorDaniel Sanders <daniel.sanders@imgtec.com>
Wed, 21 May 2014 10:11:24 +0000 (10:11 +0000)
committerDaniel Sanders <daniel.sanders@imgtec.com>
Wed, 21 May 2014 10:11:24 +0000 (10:11 +0000)
commit3046dcbce4645fddd379030295fccb09e9b87b1d
tree04b5d64b5d7654d53ba9afd1fe0b2eeed2c66d95
parentc0e669384dce6767a75a4aaa0d4bfb8e806cedbb
[asm matcher] Fix incorrect assertion when there are exactly 32 SubtargetFeatures

Summary:
The minimal type needs to hold a value of '1ULL << 31' but
getMinimalTypeForRange() is called with a value of '1ULL << 32'.

This patch will also reduce the size of the matcher table when there are 8
or 16 SubtargetFeatures.

Also added a dump of the SubtargetFeatures to the -debug output and corrected getMinimalTypeInRange() to consider 0xffffffffull to be a 32-bit value.

The testcase is that no existing code is broken and that LLVM still successfully
compiles after adding MIPS64r6 CodeGen support.

Reviewers: rafael

Reviewed By: rafael

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D3787

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209288 91177308-0d34-0410-b5e6-96231b3b80d8
utils/TableGen/AsmMatcherEmitter.cpp