This revision beefs up the debug logging within dialect conversion. Given the nature of multi-level legalization, and legalization in general, it is one of the harder pieces of infrastructure to debug. This revision adds nice formatting to make the output log easier to parse:
Legalizing operation : 'std.constant'(0x608000002420) { * Fold { } -> FAILURE : unable to fold * Pattern : 'std.constant -> ()' { } -> FAILURE : pattern failed to match * Pattern : 'std.constant -> ()' { } -> FAILURE : pattern failed to match * Pattern : 'std.constant -> (spv.constant)' { ** Insert : 'spv.constant'(0x608000002c20) ** Replace : 'std.constant'(0x608000002420) //===-------------------------------------------===// Legalizing operation : 'spv.constant'(0x608000002c20) { } -> SUCCESS : operation marked legal by the target //===-------------------------------------------===// } -> SUCCESS : pattern applied successfully } -> SUCCESS