search for: dw_op_llvm_implicit_point

Displaying 7 results from an estimated 7 matches for "dw_op_llvm_implicit_point".

2019 Nov 19
2
DW_OP_implicit_pointer design/implementation in general
...VM_arg0, 32), DILocalVariable("base")) llvm.dbg.value_new(DILocalVariable("c"), DIExpression(DW_OP_constu, 1)) The mandatory arguments would be the variable and the expression, and an arbitrary number of SSA values and potentially other variables. As far as DW_OP_LLVM_implicit_pointer in particular is concerned, we could also treat the peculiarities of DW_OP_implicit_pointer as a DWARF implementation detail, introduce DW_OP_LLVM_implicit_pointer which transforms the top-of-stack into an implicit pointer (similar to DW_OP_stack_value) and have the DWARF backend insert an artifi...
2019 Nov 20
2
DW_OP_implicit_pointer design/implementation in general
...id readability & be simpler to document/grok, but perhaps in the future we'll want to support other operations that refer to variable > DIEs. In the short term migrating to an extended dbg.value representation might take more work. Alok, wdyt? Below is what I think for each suggestion. DW_OP_LLVM_implicit_pointer * This is a good suggestion to include that in LLVM IR, because representation and specification (types of operands) of it a bit different that actual dwarf expression DW_OP_LLVM_implicit_pointer. while creating actual dwarf info it will be converted to DW_OP_LLVM_implicit_pointer. This is impl...
2019 Nov 14
4
DW_OP_implicit_pointer design/implementation in general
Hey folks, Would you all mind having a bit of a design discussion around the feature both at the DWARF level and the LLVM implementation? It seems like what's currently being proposed/reviewed (based on the DWARF feature as spec'd) is a pretty big change & I'm not sure I understand the motivation, exactly. The core point of my confusion: Why does describing the thing a pointer
2019 Dec 18
4
DW_OP_implicit_pointer design/implementation in general
...using Dwarf expression >> DW_OP_implicit_pointer as de-referenced value of a pointer can be seen >> implicitly (using another variable). Before Dwarf is dumped in LLVM IR, we >> represent it using dbg.derefval (which denotes derefereced value of pointer >> or reference) and DW_OP_LLVM_implicit_pointer operation. >> >> 2. When a temporary variable is optimized out and that variable is used >> to get de-referenced value of another reference variable (AFAIK it can not >> be reproduced with pointers) >> Such cases are being addressed using new Dwarf expression >&...
2019 Nov 29
4
DW_OP_implicit_pointer design/implementation in general
...le. Such cases are being addressed using Dwarf expression DW_OP_implicit_pointer as de-referenced value of a pointer can be seen implicitly (using another variable). Before Dwarf is dumped in LLVM IR, we represent it using dbg.derefval (which denotes derefereced value of pointer or reference) and DW_OP_LLVM_implicit_pointer operation. 2. When a temporary variable is optimized out and that variable is used to get de-referenced value of another reference variable (AFAIK it can not be reproduced with pointers) Such cases are being addressed using new Dwarf expression DW_OP_explicit_pointer as de-referenced value can...
2019 Nov 28
2
DW_OP_implicit_pointer design/implementation in general
Hi folks, I am pushing a PoC patch https://reviews.llvm.org/D70833 for review which includes the case when temporary is promoted. For such cases it generates IR as call void @llvm.dbg.derefval(metadata i32 3, metadata !25, metadata !DIExpression(DW_OP_LLVM_explicit_pointer, DW_OP_LLVM_arg0)), !dbg !32 And llvm-darfdump output looks like ------------- 0x0000007b:
2020 Jan 01
2
DW_OP_implicit_pointer design/implementation in general
...e-referenced value of a pointer can be seen >>>>>>> implicitly (using another variable). Before Dwarf is dumped in LLVM IR, we >>>>>>> represent it using dbg.derefval (which denotes derefereced value of pointer >>>>>>> or reference) and DW_OP_LLVM_implicit_pointer operation. >>>>>>> >>>>>>> 2. When a temporary variable is optimized out and that variable is >>>>>>> used to get de-referenced value of another reference variable (AFAIK it can >>>>>>> not be reproduced with poin...