As the pattern predicate number is growing, SelectionDAG MatcherTable type of char is too small to hold the number directly. So use VBR format to encode the num like what CheckOrImm does.
Details
Details
Diff Detail
Diff Detail
Event Timeline
Comment Actions
This is definitely not the right fix. We can use a variable bit encoding for the predicate like we do for CheckInteger, CheckAndImm, CheckOrImm, etc.
Comment Actions
Here is the data after patch.
Before : RISCV - // Total Array size is 2368318 bytes X86 - // Total Array size is 680816 bytes After: RISCV - // Total Array size is 2372208 bytes X86 - // Total Array size is 686351 bytes
Comment Actions
I've posted https://reviews.llvm.org/D157196 as alternative that won't impact X86 or other targets that already have more than 128 predicates.