Open
Description
The debug metadata cache is not working as expected, look at the following njit reproducer,
$ cat simple.py
from numba import njit
@njit("void(int64)", debug=True)
def f(x):
y = x
z = x
$ NUMBA_DUMP_LLVM=1 python simple.py | grep DIBasicType
!2 = !DIBasicType(encoding: DW_ATE_unsigned, name: "i8", size: 8)
!5 = !DIBasicType(encoding: DW_ATE_unsigned, name: "i8", size: 8)
!8 = !DIBasicType(encoding: DW_ATE_unsigned, name: "i32", size: 32)
!10 = !DIBasicType(encoding: DW_ATE_unsigned, name: "i8", size: 8)
!13 = !DIBasicType(encoding: DW_ATE_unsigned, name: "i8", size: 8)
!16 = !DIBasicType(encoding: DW_ATE_unsigned, name: "i32", size: 32)
!22 = !DIBasicType(encoding: DW_ATE_signed, name: "int64", size: 64)
!28 = !DIBasicType(encoding: DW_ATE_signed, name: "int64", size: 64)
!32 = !DIBasicType(encoding: DW_ATE_signed, name: "int64", size: 64)
!35 = !DIBasicType(encoding: DW_ATE_signed, name: "int64", size: 64)
For the same DWARF encoding and name,, e.g. {DW_ATE_signed, "int64"}, the corresponding DIBasicType are created multiple times.
Activity