You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[HeterogeneousDwarf] Improve -O1 debugging support
Squashed commit, fixes SWDEV-463925.
This is a combination of 5 commits.
This is the 1st commit message:
[AMDGPU] Remove Dwarf encodings for subregisters
Previously, registers and subregisters mapped to the same Dwarf
encoding. We don't really have any way to refer to subregisters directly
from Dwarf, the expression emitter should instead use DW_OPs to stencil
out the subregister from the whole register. This was also confusing
tools that need to map back to the llvm reg (e.g. dwarfdump), since
getLLVMRegNum() would arbitrarily return the _LO16 register.
This is a cherry-pick of github.com/llvm/pull/117891 with
test fixes.
Change-Id: I155bce592c7d556c01a7e3048bb8b251109dd51d
This is the commit message #2:
[HeterogeneousDwarf] Support poisoned fragments in DIExpression
This improves fragment emission, since we previously had to assume that
a poisoned expression clobbered all other live variable fragments. Now,
it only clobbers the region described by it's fragment.
This commit also canonicalizes any DIExpression containing a poison to
only the ops DW_OP_LLVM_poisoned and (optionally) DW_OP_LLVM_fragment.
The other ops don't really serve any purpose since we can't rely on any
invariants (e.g. number of location ops) of a poisoned expression. This
also cleans up the dwarf output for posioned exprs.
Change-Id: I97bd9513a81b30f290ef70f958dcc8ca4c79e489
This is the commit message #3:
[HeterogeneousDwarf] Support Dwarf register emission of subregs/sequences
This commit adds support for emitting subregisters and register
sequences. This is needed for debugging -O1, since DIExpressions can now
refer to these registers.
Change-Id: Ic7b468a01855d3f8dc675dce4b2280625bf68574
This is the commit message #4:
[SelectionDAG] Add debug info salvaging for bitcast operations
This is needed to retain debug info for 64 bit kernel parameters.
This is the commit message #5:
[SROA] Fix DIOp-DIExpression fragment handling
Change-Id: If1f73e941c227d74ebe563c2857f5df2d60e9225
Change-Id: Id3914345ef7a434355f36e45d3ea0bf6c7ae29aa
0 commit comments