Index: llvm/docs/LangRef.rst =================================================================== --- llvm/docs/LangRef.rst +++ llvm/docs/LangRef.rst @@ -5997,6 +5997,21 @@ !4 = !DIExpression(DW_OP_constu, 2, DW_OP_swap, DW_OP_xderef) !5 = !DIExpression(DW_OP_constu, 42, DW_OP_stack_value) +DIAssignID +"""""""""""" + +``DIAssignID`` nodes have no operands and are always distinct. They're used to +link together `@llvm.dbg.assign` intrinsics (:ref:`debug +intrinsics`) and store instructions in IR. See `Debug Info +Assignment Tracking `_ for more info. + +.. code-block:: llvm + + store i32 %a, ptr %a.addr, align 4, !DIAssignID !2 + llvm.dbg.assign(metadata %a, metadata !1, metadata !DIExpression(), !2, metadata %a.addr, metadata !DIExpression()), !dbg !3 + + !2 = distinct !DIAssignID() + DIArgList """"""""""""