You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SPIR-V Backend uses notion of a pointer size of the target, most notably, in legalizer code, but Tablegen instruction selection in SPIR-V Backend doesn't account for a pointer size of the target. This leads to crashes in spirv64 environment (-mtriple=spirv64-unknown-unknown), for example, when we are trying to translate G_LOAD. Even worse is that the issue is intertwined with match patterns used for ASSIGN_TYPE pseudo instructions, with register, register classes and register banks. The following example shows a minimal set of instructions that is incompatible with existing approach to Tablegen instruction selection in SPIR-V Backend:
Translation of this code would fail either during legalization, or on the instruction selection stage, depending on how we tweaked pre-legalization and on 32/64 choice of the target.
The text was updated successfully, but these errors were encountered:
…nter size of the target (#88725)
This PR resolves the issue that SPIR-V Backend uses the notion of a
pointer size of the target, most notably, in legalizer code, but
Tablegen instruction selection in SPIR-V Backend doesn't account for a
pointer size of the target. See
#88723 for a detailed
description. There are 3 test cases attached to the PR that reproduced
the issue, when dealing with spirv32-spirv64 differences, and are
working correctly now with this PR.
SPIR-V Backend uses notion of a pointer size of the target, most notably, in legalizer code, but Tablegen instruction selection in SPIR-V Backend doesn't account for a pointer size of the target. This leads to crashes in spirv64 environment (-mtriple=spirv64-unknown-unknown), for example, when we are trying to translate G_LOAD. Even worse is that the issue is intertwined with match patterns used for ASSIGN_TYPE pseudo instructions, with register, register classes and register banks. The following example shows a minimal set of instructions that is incompatible with existing approach to Tablegen instruction selection in SPIR-V Backend:
Translation of this code would fail either during legalization, or on the instruction selection stage, depending on how we tweaked pre-legalization and on 32/64 choice of the target.
The text was updated successfully, but these errors were encountered: