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
{{ message }}
Repository navigation
CUDA debug info is invalid - compile units have an empty list of subprograms #5835
This is used to create a compile unit as soon as the NvvmDIBuilder is constructed. At this point, self.subprograms is empty, so the compile unit has an empty list of subprograms. If subprograms are added later, then the subprograms metadata referenced by the compile unit remains empty.
This can cause segfaults in NVVM, or in certain cases, a failed assertion:
The list of subprograms is used to build a reverse mapping from subprograms to compile units - because the list is empty, NVVM can't find the compile unit for a given subprogram at this point. Issues with debuginfo generation like this have also affected other users of LLVM 3.4 - e.g. ispc/ispc#848.
I think the right thing to do is to modify the debug info generation so that the list of subprograms belonging to the compile unit can be updated each time a new subprogram is added, but I think this will take some work because the existing implementation is set up for everything to be immutable after creation.
Activity
Fix numba#5835: CUDA debug info is invalid
Add test for Issue numba#5835