my dialect conversion needs to convert function arguments from one type to multiple types.
I enable signature conversion through populateFunctionOpInterfaceTypeConversionPattern.
My understanding was that ArgumentMaterialization happens during signature conversion, which I assumed to happen next to all the other PatternRewrites. However, it seems that the arg-materialization happens after all the rewrites are done.

What is the recommended approach to convert a type and arguments from one to multiple elements?

You can do this with the utilities in llvm-project/DecomposeCallGraphTypes.h at main · llvm/llvm-project · GitHub

Cool! This finally helped me getting it right.

@_sean_silva Thanks so much!

1 Like