Retaining old interface and should be constructable as previous, change would have been NFC except it this doesn't implicitly work with OpAdaptor constructor in C++14. Beyond that no new information/accessors in class - follow up to enable passing in shapes compatible with values during refinement without mutating the IR.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Can you provide the "why"? I'm not sure what the motivation is here.
mlir/include/mlir/Interfaces/InferTypeOpInterface.h | ||
---|---|---|
81–101 | Why not just inherit from ValueRange? |
Sure, expanded description. This is basically towards avoiding to mutate IR during refinement. And will also be used to allow querying constant values without materializing them.
mlir/include/mlir/Interfaces/InferTypeOpInterface.h | ||
---|---|---|
81–101 | ValueRange is final and I need to add members and accessors. I could also make it not be final, but assumed there was a reason & it is widely used so didn't want to impede optimizations. |
mlir/include/mlir/Interfaces/InferTypeOpInterface.h | ||
---|---|---|
81–101 | You won't be able to use RangeBaseT here. It is CRTP (on ValueRange) and there are several static_casts that rely on the derived type. |
Why not just inherit from ValueRange?