diff options
author | Andrea Faulds <andrea.faulds@amd.com> | 2025-02-06 19:07:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-02-06 19:07:34 +0100 |
commit | f497fe464bad8743b8a87ba04a5c53579a03711a (patch) | |
tree | 34499c8cb2a19e6cb67453312f7d29c5dc942bba /llvm/lib/CodeGen/MachineTraceMetrics.cpp | |
parent | b884be86406ef1430af1609fc1b6033936afaf18 (diff) | |
download | llvm-f497fe464bad8743b8a87ba04a5c53579a03711a.zip llvm-f497fe464bad8743b8a87ba04a5c53579a03711a.tar.gz llvm-f497fe464bad8743b8a87ba04a5c53579a03711a.tar.bz2 |
[mlir][spirv] Fix some issues related to converting ub.poison to SPIR-V (#125905)
This is a follow-up to 5df62bdc9be9c258c5ac45c8093b71e23777fa0e. That
commit should not have needed to make the vector.insert and
vector.extract conversions to SPIR-V directly handle the static poison
index case, as there is a fold from those to ub.poison, and a conversion
pattern from ub.poison to spirv.Undef, however:
- The ub.poison fold result could not be materialized by the vector
dialect (fixed as of d13940ee263ff50b7a71e21424913cc0266bf9d4).
- The conversion pattern wasn't being populated in VectorToSPIRVPass,
which is used by the tests. This commit changes this.
- The ub.poison to spirv.Undef pattern rejected non-scalar types, which
prevented its use for vector results. It is unclear why this restriction
existed; a remark in D156163 said this was to avoid converting "user
types", but it is not obvious why these shouldn't be permitted (the
SPIR-V specification allows OpUndef for all types except OpTypeVoid).
This commit removes this restriction.
With these fixed, this commit removes the redundant static poison index
handling, and updates the tests.
Diffstat (limited to 'llvm/lib/CodeGen/MachineTraceMetrics.cpp')
0 files changed, 0 insertions, 0 deletions