This adds support in RewriterGen for calling into the new PatternRewriter::notifyMatchFailure hook. This lets derived pattern rewriters display this information to users, an example from DialectConversion is shown below:
Legalizing operation : 'std.and'(0x60e0000066a0) { * Fold { } -> FAILURE : unable to fold * Pattern : 'std.and -> (spv.BitwiseAnd)' { ** Failure : operand 0 of op 'std.and' failed to satisfy constraint: '8/16/32/64-bit integer or vector of 8/16/32/64-bit integer values of length 2/3/4' } -> FAILURE : pattern failed to match * Pattern : 'std.and -> (spv.LogicalAnd)' { ** Failure : operand 0 of op 'std.and' failed to satisfy constraint: 'bool or vector of bool values of length 2/3/4' } -> FAILURE : pattern failed to match } -> FAILURE : no matched legalization pattern
Depends On D76313
match failure?