Displaying 9 results from an estimated 9 matches for "dw_op_llvm_memory".
2017 Sep 06
2
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
...39;s not start mixing them up, it will just make the discussion more confusing.
--paulr
From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of David Blaikie via llvm-dev
Sent: Wednesday, September 06, 2017 10:02 AM
To: Reid Kleckner; llvm-dev
Subject: Re: [llvm-dev] RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
On Tue, Sep 5, 2017 at 1:00 PM Reid Kleckner via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote:
Debug info today handles two cases reasonably well:
1. At -O0, dbg.declare does a good job describing variable...
2017 Sep 11
2
Unify debug and optimized variable locations with llvm.dbg.addr [was: DW_OP_LLVM_memory]
...is that while
> every address must be a pointer value, not every pointer value is an
> address. Is this correct?
>
Mainly just for readability. We're encoding one bit of information: is the
result of DWARF expression on the LLVM value argument the variable's
address or value? The DW_OP_LLVM_memory proposal encodes that bit as a
special opcode in the expression. The dbg.addr proposal makes it more first
class: it's part of the IR, the intrinsic, not some possibly semantically
unimportant metadata. People seem to prefer that.
-------------- next part --------------
An HTML attachment was s...
2017 Sep 05
7
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
...e, it accepts that information as more reliable and discards all
DBG_VALUE instructions associated with that variable. So, we need something
we can mix. We need a way to say, the variable lives in memory *at this
program point*, and it might live somewhere else later on. I propose that
we introduce DW_OP_LLVM_memory for this purpose, and then we transition
from dbg.declare to dbg.value+DW_OP_LLVM_memory.
Initially I believed that DW_OP_deref was the way to say this with existing
DWARF expression opcodes, but I implemented that in
https://reviews.llvm.org/D37311 and learned more about how DWARF
expressions wor...
2017 Sep 05
2
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
...les instead of having dbg.value instructions, then maybe we don't need dbg.value either.
Thanks,
--paulr
From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of Reid Kleckner via llvm-dev
Sent: Tuesday, September 05, 2017 1:00 PM
To: llvm-dev
Subject: [llvm-dev] RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
Debug info today handles two cases reasonably well:
1. At -O0, dbg.declare does a good job describing variables that live at some known stack offset
2. With optimizations, variables promoted to SSA can be described with dbg.value
This leaves behind a...
2017 Sep 07
2
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
...They just use DW_OP_regN, which is
>> implicitly a value location.
>> 6. Teach all passes that spill virtual registers used by DBG_VALUE to
>> remove DW_OP_stack_value from the DIExpression, or add DW_OP_deref as
>> appropriate.
>>
>> This should be equivalent to DW_OP_LLVM_memory, and more inline with
>> DWARF location expression semantics, but it has a large migration cost.
>>
>> ---
>>
>> I think part of the reason I wanted to move in the DW_OP_LLVM_memory
>> direction is that I originally wanted to add a memory offset operand to it.
&g...
2017 Sep 06
4
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
...alue for DBG_VALUEs
with physical register operands. They just use DW_OP_regN, which is
implicitly a value location.
6. Teach all passes that spill virtual registers used by DBG_VALUE to
remove DW_OP_stack_value from the DIExpression, or add DW_OP_deref as
appropriate.
This should be equivalent to DW_OP_LLVM_memory, and more inline with DWARF
location expression semantics, but it has a large migration cost.
---
I think part of the reason I wanted to move in the DW_OP_LLVM_memory
direction is that I originally wanted to add a memory offset operand to it.
Our actual use cases for complex DWARF expressions typ...
2017 Sep 07
3
Unify debug and optimized variable locations with llvm.dbg.addr [was: DW_OP_LLVM_memory]
On Thu, Sep 7, 2017 at 11:11 AM, Robinson, Paul <paul.robinson at sony.com>
wrote:
> Different intrinsics sounds like a good solution to me. J
>
>
>
> So what happens with the case where a variable is registerized but later
> we decide to spill it? Presumably we'd have a dbg.addr to point to the
> spill slot. In past compilers I've used, spill slots were
2017 Sep 07
2
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
...gt; implicitly a value location.
>>>> 6. Teach all passes that spill virtual registers used by DBG_VALUE to
>>>> remove DW_OP_stack_value from the DIExpression, or add DW_OP_deref as
>>>> appropriate.
>>>>
>>>> This should be equivalent to DW_OP_LLVM_memory, and more inline with
>>>> DWARF location expression semantics, but it has a large migration cost.
>>>>
>>>> ---
>>>>
>>>> I think part of the reason I wanted to move in the DW_OP_LLVM_memory
>>>> direction is that I originally...
2017 Sep 07
5
RFC: Unify debug and optimized variable locations with llvm.dbg.addr [was: DW_OP_LLVM_memory]
I chatted with Chandler in person and came up with what I think is a much
simpler design than my previous design in the thread titled "RFC: Introduce
DW_OP_LLVM_memory to describe variables in memory with dbg.value".
The crux of the problem in that thread is that we need a representation,
particularly in the middle-end, to describe a variables address, at a
particular program point.
The reason we can't just use dbg.declare (at least as specified today)...