Open Groverkss opened 6 months ago
Yeah this is a requirement. Transform dialect is used in a couple of ways today
(a) Add the translation_info
and lowering_config
attributes to pick a particular pipeline/config to use
(b) Actually lower the dispatch to scalar/vector code.
The only way to make this work as far as I can see is to have (b) set the translation_info
to None
which will skip the C++ pass pipelines. If there is an op that we could use to do this, that would be great, but adding transform dialect ops are scary to me, so I didnt do it. Instead I added a check for it to fail compilation which is what you are hitting.
There seems to be a requirement in transform dialect lowering strategies to set the pass pipeline in translation_info to None https://github.com/iree-org/iree/blob/main/compiler/src/iree/compiler/Codegen/Common/LowerExecutableUsingTransformDialect.cpp#L60 .
I checked, and the only place this pass pipeline is set to None is actually a single transform dialect op which doesn't even document this behaviour at all.
https://github.com/iree-org/iree/blob/main/compiler/src/iree/compiler/Codegen/LLVMGPU/TransformExtensions/LLVMGPUExtensions.cpp#L96