This patch change the type of operands async, wait, numGangs, numWorkers and vectorLength from index
to AnyInteger to fit with acc.loop and the OpenACC specification.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td | ||
---|---|---|
96–100 | Make sure index is also supported. It was intended as a platform-specific opaque size type. While it's reasonable to adhere to the spec and allow any integer, most lowerings coming from higher levels and many standard ops (e.g. taking the size of some container) will use index. | |
mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp | ||
162–165 | This will now parse every type as i64, regardless of what type is actually used. Roundtripping will thus erase type information, which is incorrect. If you need to support different types, you need to specify which type is used somehow. |
mlir/lib/Dialect/OpenACC/IR/OpenACC.cpp | ||
---|---|---|
162–165 | Right, I was suspecting smith was not quite right here. I guess I have to add the type and parse it as well like I did for the variadic operands in this op. I'll update the patch today. |
mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td | ||
---|---|---|
96–100 | If that's fine I'll make a follow up patch to use the same type in acc.loop |
Make sure index is also supported. It was intended as a platform-specific opaque size type. While it's reasonable to adhere to the spec and allow any integer, most lowerings coming from higher levels and many standard ops (e.g. taking the size of some container) will use index.