-
Notifications
You must be signed in to change notification settings - Fork 608
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SPIRV] Break SPIRVVectorize pass into GenericVectorization and SPIRVVectorLowering passes. #15009
Conversation
…gate it to GenericVectorization. It renames the old pass to SPIRVVectorLowering because it is mainly lowering vector ops. This is a duplicate of #14902 to push it through to completion. Additionally cooperative matrix vectorization runs preparation patterns for vectorization, so splitting apart that pass is left as TODO.
3237e4d
to
d6cef01
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This mostly looks good to me. Ill let Lei or Jakub approve, but happy to stamp if you need me to.
This pass is fairly load bearing so I'll wait for their eyes. The hope is that it is pretty much NFC though. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
let summary = "Vectorize Linalg ops with buffer semantics"; | ||
let constructor = "mlir::iree_compiler::createSPIRVVectorizePass()"; | ||
let constructor = "mlir::iree_compiler::createSPIRVVectorLoweringPass()"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should probably remove these constructors in the future and let tablegem autogenerate all of this code. But this is as a side note only, let's keep things as close to NFC as possible in this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes we should. I split up the TD file to be per backend to do that (someday). I
This removes vectorization patterns from SPIRVVectorize pass and delegate it to GenericVectorization.
It renames the old pass to SPIRVVectorLowering because it is mainly lowering vector ops.
This is a duplicate of #14902 to push it through to completion.