iree-org / iree

A retargetable MLIR-based machine learning compiler and runtime toolkit.

Home Page:http://iree.dev/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Transform Dialect pipelines set translation_info to None

Groverkss opened this issue · comments

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

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.