Displaying 4 results from an estimated 4 matches for "op_stack_value".
2017 Sep 06
4
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
...at lists.llvm.org> wrote:
>
>> LLVM SSA values obviously do not have an address that we can take and
>> they don’t live in registers, so neither the default memory location model
>> nor DW_OP_regN make sense for LLVM’s dbg.value. We could hypothetically
>> repurpose DW_OP_stack_value to indicate that the SSA value passed to
>> llvm.dbg.value *is* the variable’s value, and if the expression lacks
>> DW_OP_stack_value, it must be a the address of the value. However, that is
>> backwards incompatible and it seems like quite a stretch.
>>
>
> Seems lik...
2017 Sep 06
2
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
...F.
A DWARF expression computes a value; if the available value is a pointer, you add DW_OP_deref to express the pointed-to value. A DWARF location expression computes a location, and adds various operators to express locations that a (value) expression cannot, such as DW_OP_regx. You also have DW_OP_stack_value to say "just kidding, this location expression is a value expression."
So, whether we want to start throwing around deref or stack_value or regx (implicit or explicit) really depends on whether we are going to be using value expressions or location expressions. Let's not start mixing...
2017 Sep 05
7
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
...debugger begins evaluating a DWARF expression, it
assumes that the resulting value will be a pointer to the variable in
memory. For a debugger, this makes sense, because debug builds put things
in memory and even after optimization many variables must be spilled. Only
the special DW_OP_regN and DW_OP_stack_value expression opcodes change the
location of the value from memory to register or stack value.
LLVM SSA values obviously do not have an address that we can take and they
don’t live in registers, so neither the default memory location model nor
DW_OP_regN make sense for LLVM’s dbg.value. We could hypo...
2017 Sep 07
2
RFC: Introduce DW_OP_LLVM_memory to describe variables in memory with dbg.value
...gt;> To support that, all existing uses would need no changes to match the
>>> DWARF model of registers being implicitly direct values.
>>>
>>> Code that wanted to describe the register as containing the memory
>>> address of the interesting thing would use DW_OP_stack_value to say "this
>>> location description that is a register is really an address you should
>>> follow to find the value, not a direct value itself"?
>>>
>>> But code that wanted to describe a variable as being 3 bytes ahead of a
>>> pointer in an...