Lines Matching refs:description

102 .. _amdgpu-dwarf-allow-location-description-on-the-dwarf-evaluation-stack:
109 expression. However, by allowing a location description to be a first-class
118 location description. This can be extended to allow a default address space
119 memory location description to be implicitly converted back to its address
123 descriptions to any kind of location description.
130 of any kind of location description, and the ability to support objects located
147 the location description results. This gives confidence in backwards
160 only allows a location description that is a register, memory address, or
161 implicit location description. AMDGPU optimized code may spill scalar registers
163 location description kind to be supported.
170 In DWARF Version 5 a location description is defined as a single location
171 description or a location list. A location list is defined as either
172 effectively an undefined location description or as one or more single
176 :ref:`amdgpu-dwarf-allow-location-description-on-the-dwarf-evaluation-stack`,
178 location description on the stack. Furthermore, debugger information entry
180 ``DW_AT_vtable_elem_location`` are defined as pushing a location description on
189 :ref:`amdgpu-dwarf-allow-location-description-on-the-dwarf-evaluation-stack`
194 the field of an object can be evaluated with a location description that has
195 multiple places and will result in a location description with multiple places.
203 See :ref:`amdgpu-dwarf-location-description`.
209 memory location description in the default target architecture specific address
211 description. This allows them to continue to be used to offset an address.
213 To generalize offsetting to any location description, including location
231 location description that may be in a register, or be an implicit value. The
233 without regard to what kind of location description was pushed.
236 :ref:`amdgpu-dwarf-allow-location-description-on-the-dwarf-evaluation-stack` has
242 computed offset of an arbitrary location description (such as a vector register)
244 to compute a location description on the stack.
248 :ref:`amdgpu-dwarf-general-location-description-operations`.
254 description. Since
255 :ref:`amdgpu-dwarf-allow-location-description-on-the-dwarf-evaluation-stack`
257 an explicit way to specify an undefined location description.
261 operation takes more than one location description on the stack. Without this
266 :ref:`amdgpu-dwarf-undefined-location-description-operations`.
272 that indicates the end of the definition of a composite location description is
277 :ref:`amdgpu-dwarf-composite-location-description-operations`.
288 required to generalize DWARF to allow any location description to be used. This
293 :ref:`amdgpu-dwarf-general-location-description-operations`.
325 memory location description. For example, a pointer to member value may want to
330 way to create a memory location description for an address in the non-default
335 :ref:`amdgpu-dwarf-memory-location-description-operations`) operation is defined
336 to create a memory location description from an address and address space. If
347 description was defined, then it would be limited to the size of the generic
356 :ref:`amdgpu-dwarf-memory-location-description-operations`) operation is added
361 (:ref:`amdgpu-dwarf-implicit-location-description-operations`) operation is
368 memory location description. This allows it to specify an address space which is
391 description and no extra information. The same set of operations can operate on
427 To support this, a composite location description that can be created as a
429 location description that is a vector on another location description is needed.
435 :ref:`amdgpu-dwarf-composite-location-description-operations`.
451 :ref:`amdgpu-dwarf-allow-location-description-on-the-dwarf-evaluation-stack`
455 :ref:`amdgpu-dwarf-general-location-description-operations` and
496 :ref:`amdgpu-dwarf-composite-location-description-operations`.
618 The DWARF location description for the array needs to express that all elements
626 location description as an overlay of the first, positioned according to the
628 :ref:`amdgpu-dwarf-composite-location-description-operations`.
702 location description (see :ref:`amdgpu-dwarf-location-description`). When a
704 description is required as the result kind.
708 :ref:`amdgpu-dwarf-memory-location-description-operations` are performed if
718 descriptions having an undefined location description. Then operations that
719 encounter an evaluation error can return the undefined location description or
751 it can be a location description or a value.
859 the undefined location description (indicating the lane was not active on
921 The location description of a program object.
930 :ref:`amdgpu-dwarf-location-description`).
943 :ref:`amdgpu-dwarf-location-description`).
948 *A DWARF expression for a location description may be able to be evaluated
1001 .. _amdgpu-dwarf-location-description:
1020 A single location description specifies the location storage that holds a
1072 If a location description has more than one single location description, the
1074 description's position within the associated location storage is not the same
1077 *A location description that has more than one single location description can
1080 description that has more than one single location description. There are no
1081 operation expression operations that can directly create a location description
1082 with more than one single location description.*
1084 *A location description with more than one single location description can be
1094 *A consumer of a location description with more than one single location
1095 description can read the object's value from any of the single location
1100 location description. If such a location description is accessed, the storage it
1102 location description was created, which may differ from the context at the time
1105 *For example, creating a register location description requires the thread
1107 Creating a memory location description for an address space may required a
1111 If any of the context elements required to create a location description change,
1112 the location description becomes invalid and accessing it is undefined.
1114 *Examples of context that can invalidate a location description are:*
1128 *A DWARF expression can be used to compute a location description for an object.
1130 description as the object context or initial stack context to compute a
1132 description becomes invalid between the two expression evaluations.*
1134 A change of a thread's program location may not make a location description
1136 location description, or using it as the object context or initial stack context
1139 *For example, a location description may specify a register that no longer holds
1154 entry can hold either a value or a location description. Operations can act on
1158 :ref:`amdgpu-dwarf-memory-location-description-operations`), then the DWARF
1173 * If the current result kind specifies a location description, then:
1175 * If the stack is empty, the result is a location description with one
1176 undefined location description.
1179 explicit operation to create an undefined location description, and uses an
1182 * If the top stack entry is a location description, or can be converted
1183 to one (see :ref:`amdgpu-dwarf-memory-location-description-operations`),
1184 then the result is that, possibly converted, location description. Any other
1191 Could define this case as returning an implicit location description as
1197 :ref:`amdgpu-dwarf-memory-location-description-operations`), then the result
1205 * If the stack is empty, the result is a location description with one
1206 undefined location description.
1209 explicit operation to create an undefined location description, and uses an
1215 description is requested. However, GDB appears to report this as an error
1246 They allow the stack entries to be either a value or location description.
1249 location description (see
1250 :ref:`amdgpu-dwarf-composite-location-description-operations`), then the DWARF
1262 specified by the incomplete composite location description is also replicated
1264 location description can update the composite location storage they specify
1421 kind is a location description, the compilation unit is the one that
1422 contains D, and the initial stack is empty. The location description
1430 description for a variable or formal parameter which may use a location
1441 location description on the stack. Presumably the intent of using
1443 entry is to push just one location description on the stack. That
1444 location description may have more than one single location description.
1456 description on the stack for a variable or formal parameter, and also
1464 and pushes a location description (that may have multiple single
1479 return a location description. The producer then explicitly indicates
1495 except the result kind is a location description, the compilation unit
1497 description result is pushed on the stack.
1503 description for any variable or formal parameter regardless of whether the
1512 operation expression that results in a location description with one
1513 implicit location description. Then this rule would not be required.
1522 ``DW_OP_call*`` to get a location description for any non-\
1708 extensions allow a composite location description to be used to combine
1762 It pops one stack entry that must be a location description L.
1767 *If L, or the location description of any composite location description
1769 description, then any one of them can be selected as they are required to
1770 all have the same value. For any single location description SL, bits are
1772 specified by SL. For a composite location description, the retrieved bits
1781 description that has less than TS bits remaining in the register storage.
1806 location storage LS specified by any single location description SL of L.
1808 See :ref:`amdgpu-dwarf-implicit-location-description-operations` for special
1881 If the result of E is a location description L (see
1882 :ref:`amdgpu-dwarf-register-location-description-operations`), and the last
1916 .. _amdgpu-dwarf-location-description-operations:
1924 .. _amdgpu-dwarf-general-location-description-operations:
1937 location description L.
1940 single location description SL of L, and pushes the updated L.
1968 a location description L.
1970 It adds the value of B to the bit offset of each single location description
1979 ``DW_OP_push_object_address`` pushes the location description L of the
1984 description may be determined from the variable's own debugging information
1991 location description of a structure prior to evaluation of a*
1996 This operation could be removed and the object location description
2027 It pushes a location description L that holds the value of register R on
2033 the undefined location description is pushed. If the register rule is* same
2034 value\ *, then a register location description for R is pushed.*
2036 .. _amdgpu-dwarf-undefined-location-description-operations:
2049 An undefined location description specifies the undefined location storage.
2051 offset for an undefined location description. The ``DW_OP_LLVM_*offset``
2052 operations leave an undefined location description unchanged. The
2054 location description, allowing any size and offset to be specified, and results
2059 ``DW_OP_LLVM_undefined`` pushes a location description L that comprises one
2060 undefined location description SL.
2062 .. _amdgpu-dwarf-memory-location-description-operations:
2083 A memory location description specifies a memory location storage. The bit
2085 using a memory location description, access the corresponding target
2089 A memory location description that has a bit offset that is a multiple of 8 (the
2090 byte size) is defined to be a byte address memory location description. It has a
2093 A memory location description that does not have a bit offset that is a multiple
2094 of 8 (the byte size) is defined to be a bit field memory location description.
2098 The address space AS of a memory location description is defined to be the
2100 the memory location description.
2102 A location description that is comprised of one byte address memory location
2103 description SL is defined to be a memory byte address location description. It
2109 If a stack entry is required to be a location description, but it is a value V
2110 with the generic type, then it is implicitly converted to a location description
2111 L with one memory location description SL. SL specifies the memory location
2118 a memory location description in the target architecture default address
2121 If a stack entry is required to be a location description, but is a value V
2123 description L with a one memory location description SL. If the type size of
2137 If a stack entry is required to be a location description, but it is an implicit
2139 implicitly converted to a location description with one single location
2140 description specified by IPV. See
2141 :ref:`amdgpu-dwarf-implicit-location-description-operations`.
2149 If a stack entry is required to be a value, but it is a location description L
2150 with one memory location description SL in the target architecture default
2160 It pushes a location description L with one memory location description SL
2178 It pushes a location description L with one memory location description SL
2201 It pushes a location description L with one memory location description SL
2213 description was created is accessed, and not the location storage associated
2219 See :ref:`amdgpu-dwarf-implicit-location-description-operations` for special
2229 It pushes a location description L with one memory location description SL
2231 description that corresponds to the thread-local storage address TA.
2258 ``DW_OP_call_frame_cfa`` pushes the location description L of the Canonical
2276 The location description L for the *frame base* of the current subprogram is
2281 The location description L is updated as if the ``DW_OP_LLVM_offset_uconst
2306 They push a location description L comprising one memory location
2307 description LS on the stack. LS specifies the memory location storage that
2339 .. _amdgpu-dwarf-register-location-description-operations:
2352 A register location description specifies a register location storage. The bit
2354 register location description access the corresponding target architecture
2371 description L that specifies one register location description SL on the
2377 location description that holds the register for the current call frame and
2379 description L is pushed.
2382 description may be register, memory, or undefined.*
2393 *on a register location description.*
2395 .. _amdgpu-dwarf-implicit-location-description-operations:
2408 An implicit location description specifies an implicit location storage. The bit
2410 accessed using an implicit location description, access the corresponding
2422 It pushes location description L with one implicit location description SL
2432 It pushes a location description L with one implicit location description SL
2437 location description specifies the actual value of the object, rather than
2440 See :ref:`amdgpu-dwarf-implicit-location-description-operations` for special
2460 form, the location description specifies a debugging information entry that
2461 represents the actual location description of the object to which the
2487 It pushes a location description L that comprises one implicit location
2488 description SL on the stack. SL specifies LS with a bit offset of 0.
2491 description L', and retrieves S bits, such that any retrieved bits come from
2495 1. All retrieved bits come from an implicit location description that
2499 description, as L' may involve composite location descriptors.*
2513 If IPV is either implicitly converted to a location description (only done
2517 description RL is:
2521 that the result kind is a location description, the compilation unit is
2533 value. RL comprises one implicit location description SRL. SRL specifies
2540 location description, then this rule would not be required.
2548 then it pushes a location description that is the same as L.
2552 *The restrictions on how an implicit pointer location description created
2565 The location description L that is pushed on the stack is the same as for
2599 .. _amdgpu-dwarf-composite-location-description-operations:
2612 Each part has a part location description L and a part bit size S. L can have
2627 A composite location description specifies a composite location storage. The bit
2644 A composite location description that specifies a composite location storage
2645 that is incomplete is termed an incomplete composite location description. A
2646 composite location description that specifies a composite location storage that
2647 is complete is termed a complete composite location description.
2649 If the top stack entry is a location description that has one incomplete
2650 composite location description SL after the execution of an operation expression
2651 has completed, SL is converted to a complete composite location description.
2659 If a stack entry is required to be a location description L, but L has an
2660 incomplete composite location description, then the DWARF expression is
2662 creating a composite location description as described below.
2665 location descriptions from any other location description, including those that
2669 *The incremental composite location description operations are defined to be
2679 * If the stack is empty, then a location description L comprised of one
2680 incomplete composite location description SL is pushed on the stack.
2683 P. P specifies a location description PL and has a bit size of S scaled by
2684 8 (the byte size). PL is comprised of one undefined location description
2689 * Otherwise, if the top stack entry is a location description L comprised of
2690 one incomplete composite location description SL, then the incomplete
2692 part P. P specifies a location description PL and has a bit size of S
2694 description PSL. L is left on the stack.
2696 * Otherwise, if the top stack entry is a location description or can be
2698 description PL. Then:
2700 * If the top stack entry (after popping PL) is a location description L
2701 comprised of one incomplete composite location description SL, then the
2703 append a new part P. P specifies the location description PL and has a
2706 * Otherwise, a location description L comprised of one incomplete
2707 composite location description SL is pushed on the stack.
2710 part P. P specifies the location description PL and has a bit size of S
2722 *operation can be used to update the location description before using it as
2723 the part location description of a* ``DW_OP_piece`` *operation.*
2734 description. Not only would this be a simpler operation and avoid the
2746 has the bit size S, and the location description PL of any created part is
2752 description.*
2755 *operation can be used to update the location description before using it as
2756 the part location description of a* ``DW_OP_bit_piece`` *operation.*
2761 used on the part's location description.
2765 If the top stack entry is not a location description L comprised of one
2766 incomplete composite location description SL, then the DWARF expression is
2770 updated to be a complete composite location description with the same parts.
2778 It pops one stack entry that must be a location description and is treated
2779 as the part location description PL.
2781 A location description L comprised of one complete composite location
2782 description SL is pushed on the stack.
2798 represents a bit mask value M. The second must be a location description
2799 that represents the one-location description L1. The third must be a
2800 location description that represents the zero-location description L0.
2804 location description PL\ :sub:`N` and has a bit size of S.
2812 A location description L comprised of one complete composite location
2813 description SL is pushed on the stack. SL specifies LS with a bit offset of
2824 offset value O. The third must be a location description that represents the
2825 overlay location description OL. The fourth must be a location description
2826 that represents the base location description BL.
2837 value BO. The third must be a location description that represents the
2838 overlay location description OL. The fourth must be a location description
2839 that represents the base location description BL.
2847 minimum RBSS of each single location description SL of L.
2856 push a composite location description.
2858 *The composite location description is conceptually the base location
2859 description BL with the overlay location description OL positioned as an
2889 *Bounded location description*
2892 evaluates to the location description of an object that is valid over a
2901 There are several kinds of bounded location description entries which differ
2904 *Default location description*
2907 evaluates to the location description of an object that is valid when no
2908 bounded location description entry applies.
2911 within the range of any bounded location description entry.
2917 bounded location description entries. The applicable base address of a bounded
2918 location description entry is the address specified by the closest preceding
2931 The address ranges defined by the bounded location description entries of a
2937 defined, and there is no following default location description entry, it is
2955 description that comprises one undefined location description.
2959 description, the object is unspecified, and the initial stack is empty. The
2960 location list entry result is the location description returned by the
2963 The result is a location description that is comprised of the union of the
2964 single location descriptions of the location description result of each
2978 description that may originate from the evaluation of a location list
3145 in the variable's location description needing an address space.
3275 has a result kind of a location description, an unspecified object, the
3279 description L of the place where the return address for the current call
3283 description for one of the target architecture specific address spaces.
3298 has a result kind of a location description, an unspecified object, the
3304 resulting location description L is not comprised of one single location
3305 description SL.
3307 If SL is a register location description for register R, then L is replaced
3309 computes the frame base memory location description in the target
3318 location description directly using ``DW_OP_call_frame_cfa``,
3323 description in any of the target architecture specific address spaces.
3335 has a result kind of a location description, an unspecified object, the
3339 description L of the *canonical frame address* (see
3345 description for one of the target architecture specific address spaces.
3376 has a result kind of a location description, an unspecified object, the
3381 The resulting location description L is for a lane count sized vector of
3386 description.
3389 description.
3395 *Typically, the result is a location description with one composite location
3396 description with each part being a location description with either one
3397 undefined location description or one memory location description.*
3408 description, an unspecified object, the compilation unit that contains E, an
3413 description SL.
3452 location description, an unspecified object, the compilation unit that
3455 if any. The DWARF is ill-formed if the result is not a location description
3456 comprised of one implicit location description, that when read as the
3489 description, an unspecified object, the compilation unit that contains E, an
3492 resulting location description L\ :sub:`2` is the location where the
3563 has a result kind of a location description, an unspecified object, the
3567 description of the base of the data object.
3574 Delete the description of how the ``DW_OP_call*`` operations evaluate a
3587 supporting evaluating the location description of an object, and using a
3600 implicit location description now that any location description can be
3602 to be used to push the location description of any variable regardless of
3657 location description of the beginning of the containing entity. The
3658 result of the evaluation is the location description of the base of the
3666 with a context that has a result kind of a location description, an
3668 stack comprising the location description of the beginning of the
3671 any. The result of the evaluation is the location description of the
3677 description, including those with more than one single location
3678 description, and those with single location descriptions that are of any
3688 has a result kind of a location description, an unspecified object, the
3690 description of the object of the enclosing type, and other context elements
3692 is focused, if any. The result of the evaluation is the location description
3701 used to compute the location description of the member of the class to which
3704 *The method used to find the location description of a given member of a
3711 location description for a particular object of the given pointer to member
3715 has a result kind of a location description, an unspecified object, the
3720 the location description of the base of the entire class, structure, or
3722 result of the evaluation is the location description of the member of the
3731 computes the location description of the data for an object. When this
3732 attribute is omitted, the location description of the data is the same as
3733 the location description of the object.
3736 has a result kind of a location description, an object that is the location
3737 description of the data descriptor, the compilation unit that contains E, an
3740 result of the evaluation is the location description of the base of the
3745 description of the object which can then serve as a descriptor in subsequent
3760 location description of the object since the expression has to need it.
3899 location description, including those with composite and implicit location
3913 The previous value of this register is the undefined location description (see
3914 :ref:`amdgpu-dwarf-undefined-location-description-operations`).
3922 register is the location description L that specifies one register location
3923 description SL. SL specifies the register location storage that corresponds to
3927 register is the location description obtained using the call frame information
3936 location description computed as if the DWARF operation expression
3938 result kind is a location description, the compilation unit is unspecified,
3940 description of the current CFA (see
3945 byte address of the location description computed as if the DWARF operation
3947 except the result kind is a location description, the compilation unit is
3949 location description of the current CFA (see
3952 The DWARF is ill-formed if the CFA location description is not a memory byte
3953 address location description, or if the register size does not match the size
3954 of an address in the address space of the current CFA location description.
3956 *Since the CFA location description is required to be a memory byte address
3957 location description, the value of val_offset(N) will also be a memory byte
3958 address location description since it is offsetting the CFA location
3959 description by N bytes. Furthermore, the value of val_offset(N) will be a
3961 description.*
3980 The previous value of this register is the location description obtained using
3995 The previous value of this register is located at the location description
4000 description, the compilation unit is unspecified, the object is unspecified,
4001 and an initial stack comprising the location description of the current CFA
4010 stack comprising the location description of the current CFA (see
4022 *expression(E)* can be used to create an implicit location description of
4239 DW_OP_aspace_bregx R, B`` as a location description.
4248 DW_OP_aspace_bregx R, B * data_alignment_factor`` as a location description.
4260 DW_OP_aspace_bregx R, B`` as a location description.
4273 B * data_alignment_factor`` as a location description.
4287 description. B and AS are the old CFA byte displacement and address space
4299 location description. R and AS are the old CFA register number and address
4311 data_alignment_factor`` as a location description. R and AS are the old CFA
4326 description, the compilation unit is unspecified, the object is unspecified,
4333 address location description.
4422 *That is, E computes the location description where the register value can
4737 acting on a location description.