Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
DWARF Operations to Create Vector Composite Location Descriptions
AMDGPU optimized code may spill vector registers to non-global address space memory, and this spilling may be done only for SIMT lanes that are active on entry to the subprogram. To support this the CFI rule for the partially spilled register needs to use an expression that uses the EXEC register as a bit mask to select between the register (for inactive lanes) and the stack spill location (for active lanes that are spilled). This needs to evaluate to a location description, and not a value, as a debugger needs to change the value if the user assigns to the variable. Another usage is to create an expression that evaluates to provide a vector of logical PCs for active and inactive lanes in a SIMT execution model. Again the EXEC register is used to select between active and inactive PC values. In order to represent a vector of PC values, a way to create a composite location description that is a vector of a single location is used. To support this, a composite location description that can be created as a masked select is required. In addition, an operation that creates a composite location description that is a vector on another location description is needed.
- Loading branch information