These patterns are exposed via a new "apply_conversion_patterns" op.
Also provide a new type converter that converts from memref to LLVM types. Conversion patterns that lower to LLVM are special: they require an LLVMTypeConverter; a normal TypeConverter is not enough. This revision also adds a new interface method to pattern descriptor ops to verify that the default type converter of the enclosing "apply_conversion_patterns" op is compatible with the set of patterns. At the moment, a simple StringRef is used. This can evolve to a richer type in the future if needed.
can we make the syntax a bit more idiomatic here? E.g.