Page MenuHomePhabricator

[AMDGPU] Implement CFI for CSR spills
Needs ReviewPublic

Authored by scott.linder on Mar 26 2020, 12:22 PM.

Details

Summary

Introduce new SPILL pseudos to allow CFI to be generated for only CSR
spills, and to make ISA-instruction-level accurate information.

Other targets either generate slightly incorrect information or rely on
conventions for how spills are placed within the entry block. The
approach in this change produces larger unwind tables, with the
increased size being spent on additional DW_CFA_advance_location
instructions needed to describe the unwinding accurately.

Diff Detail

Unit TestsFailed

TimeTest
1,340 msLLVM.CodeGen/AMDGPU::wave32.ll
Script: -- : 'RUN: at line 1'; c:\ws\prod\llvm-project\build\bin\llc.exe -march=amdgcn -mcpu=gfx1010 -mattr=+wavefrontsize32,-wavefrontsize64 -verify-machineinstrs < C:\ws\prod\llvm-project\llvm\test\CodeGen\AMDGPU\wave32.ll | c:\ws\prod\llvm-project\build\bin\filecheck.exe -check-prefixes=GCN,GFX1032 C:\ws\prod\llvm-project\llvm\test\CodeGen\AMDGPU\wave32.ll