search for: dw_op_llvm_arg0

Displaying 8 results from an estimated 8 matches for "dw_op_llvm_arg0".

Did you mean: dw_op_llvm_arg
2019 Nov 19
2
DW_OP_implicit_pointer design/implementation in general
...on in the instruction stream. That first SSA value argument is an implicit first element in the DIExpression. A more general form would be a more printf-like signature: llvm.dbg.value(DILocalVariable, DIExpression, ...) for example llvm.dbg.value_new(DILocalVariable("x"), DIExpression(DW_OP_LLVM_arg0), %x) llvm.dbg.value_new(DILocalVariable("y"), DIExpression(DW_OP_LLVM_arg0, DW_OP_LLVM_arg1, DW_OP_plus), %ptr, %ofs) llvm.dbg.value_new(DILocalVariable("z"), DIExpression(DW_OP_implicit_pointer, DW_OP_LLVM_arg0, 32), DILocalVariable("...
2019 Nov 20
2
DW_OP_implicit_pointer design/implementation in general
...clude 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 implemented and patch is updated for it. DW_OP_LLVM_arg0 * This is good suggestion and will help in readability. It is also implemented and is available in updated patch. Splitting dbg.value * This is also a good idea from readability point of view. It also opens possibility of extension below is explanation. Since dbg.value currently represents (VA...
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: DW_TAG_inlined_subroutine DW_AT_abstract_origin (0x0000004f "_Z4sinkRKi") DW_AT_low_pc (0x00000000004004c6) DW_AT_high_pc (0x00000000004004d0)...
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
...gt;>>> 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: DW_TAG_inlined_subroutine >>>> DW_AT_abstract_origin (0x0000004f "_Z4sinkRKi") >>>>...
2019 Nov 29
4
DW_OP_implicit_pointer design/implementation in general
...tch 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: DW_TAG_inlined_subroutine >> DW_AT_abstract_origin (0x0000004f "_Z4sinkRKi") >> DW_AT_low_pc (0x00000000004004c6) &gt...
2020 Jul 07
2
Defining the DIExpression operator DW_OP_LLVM_arg
...lue from the entire containing intrinsic. My personal opinion (possibly biased as the author of D82363) is that the best solution is to remove DW_OP_LLVM_argN from the implicit pointer work altogether. The operator introduced in that patch is more general-purpose than necessary; it is only used as DW_OP_LLVM_arg0 and in conjunction with @llvm.dbg.derefval, an intrinsic added in that patch. It seems at a glance that the functionality could be folded into the new intrinsic and operator pair by having them automatically refer to arg0. While it's possible that this general-purpose operator could have value...
2020 Jan 01
2
DW_OP_implicit_pointer design/implementation in general
...> >>>>>>>>> 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:...