[DebugInfo] Initial support NonSemantic.Kernel.DebugInfo.100#1846
[DebugInfo] Initial support NonSemantic.Kernel.DebugInfo.100#1846MrSidims merged 5 commits intoKhronosGroup:mainfrom
Conversation
This patch implements the initial support for the new debug specification NonSemantic.Kernel.DebugInfo.100. It also introduces support for the new debug instruction DISubrange. Spec: KhronosGroup/SPIRV-Registry#186
|
@svenvh may I ask you to take a look if you (ARM) would be interested in new debug info extended instruction set? |
MrSidims
left a comment
There was a problem hiding this comment.
Follow up to the comment to the test:
I see some W/As to preserve subranges in existing DebugTypeArray translation. I suggest not to remove these W/As: instead we may have (temporary) two version of translate DebugTypeArray functions:
- 1st should be the same implementation as we have now without the patch, and they should be run if OpenCL debug info instruction set is enabled;
- 2nd should be the changed functions as they are being added in this patch, and they should be run if nonsemantic debug info instruction set is enabled
MrSidims
left a comment
There was a problem hiding this comment.
Overall LGTM, several minor comments
test/FortranArray.ll
Outdated
| ; and back to .ll. This causes the LLVM IR verifier to fail as there | ||
| ; are different rules for valid DISubRange depending on language ID. | ||
|
|
||
| ; RUN: llvm-spirv %t.bc -spirv-text --spirv-debug-info-version=nonsemantic-kernel-100 |
There was a problem hiding this comment.
Lets don't change this test in this patch
There was a problem hiding this comment.
Why not? We just add the run/check lines for new behavior for DISubrange. Or do we plan to preserve only one version of DISubrange translation?
There was a problem hiding this comment.
The problem here is with the Fortran language. As we discussed offline, the lower bound can start from either 0 or 1 depending on the language. So for the older spec, we won't have Fortran language, which means that after the translation, we will have OpenCL encoded in dwarf. In this test, the lower bound seems to be set as 1, causing the LLVM verifier to error out.
|
Merging do unblock further development. Name of the instruction set and option can be changed. |
This patch implements the initial support for the new debug specification NonSemantic.Kernel.DebugInfo.100. It also introduces support for the new debug instruction DISubrange. Spec: KhronosGroup/SPIRV-Registry#186
This patch implements the initial support for the new debug specification NonSemantic.Kernel.DebugInfo.100. It also introduces support for the new debug instruction DISubrange. Spec: KhronosGroup/SPIRV-Registry#186
…ronosGroup#1846) This patch implements the initial support for the new debug specification NonSemantic.Kernel.DebugInfo.100. It also introduces support for the new debug instruction DISubrange. Spec: KhronosGroup/SPIRV-Registry#186
…onosGroup#1846) This patch implements the initial support for the new debug specification NonSemantic.Kernel.DebugInfo.100. It also introduces support for the new debug instruction DISubrange. Spec: KhronosGroup/SPIRV-Registry#186
This patch implements the initial support for the new debug specification NonSemantic.Kernel.DebugInfo.100. It also introduces support for the new debug instruction DISubrange. Spec: KhronosGroup/SPIRV-Registry#186
) This patch implements the initial support for the new debug specification NonSemantic.Kernel.DebugInfo.100. It also introduces support for the new debug instruction DISubrange. Spec: KhronosGroup/SPIRV-Registry#186
…ronosGroup#1846) This patch implements the initial support for the new debug specification NonSemantic.Kernel.DebugInfo.100. It also introduces support for the new debug instruction DISubrange. Spec: KhronosGroup/SPIRV-Registry#186
…ronosGroup#1846) This patch implements the initial support for the new debug specification NonSemantic.Kernel.DebugInfo.100. It also introduces support for the new debug instruction DISubrange. Spec: KhronosGroup/SPIRV-Registry#186
) This patch implements the initial support for the new debug specification NonSemantic.Kernel.DebugInfo.100. It also introduces support for the new debug instruction DISubrange. Spec: KhronosGroup/SPIRV-Registry#186
This patch implements the initial support for the new debug specification NonSemantic.Kernel.DebugInfo.100.
It also introduces support for the new debug instruction DISubrange.
Spec: KhronosGroup/SPIRV-Registry#186