Displaying 7 results from an estimated 7 matches for "dw_op_llvm_implicit_point".
Did you mean:
dw_op_llvm_implicit_pointer
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...