[AMDGPU] AMDPAL scratch buffer support
authorTim Renouf <tim.renouf@amd.com>
Fri, 29 Sep 2017 09:49:35 +0000 (09:49 +0000)
committerTim Renouf <tim.renouf@amd.com>
Fri, 29 Sep 2017 09:49:35 +0000 (09:49 +0000)
commit132291589f9d754cc32c5c2da60da5da61849470
treed85eda353ab671d3182a4d387e7401f1a4fdd2a7
parent9f7ead33344baf87f546e6f90d13b97e291cee4b
[AMDGPU] AMDPAL scratch buffer support

Summary:
Added support for scratch (including spilling) for OS type amdpal:
generates code to set up the scratch descriptor if it is needed.

With amdpal, the scratch resource descriptor is loaded from offset 0 of
the global information table. The low 32 bits of the address of the
global information table is passed in s0.

Added amdgpu-git-ptr-high function attribute to hard-wire the high 32
bits of the address of the global information table. If the function
attribute is not specified, or is 0xffffffff, then the backend generates
code to use the high 32 bits of pc.

The documentation for the AMDPAL ABI will be added in a later commit.

Subscribers: arsenm, kzhuravl, wdng, nhaehnle, yaxunl, dstuttard, t-tye

Differential Revision: https://reviews.llvm.org/D37483

llvm-svn: 314501
llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
llvm/lib/Target/AMDGPU/SIFrameLowering.h
llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp
llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
llvm/test/CodeGen/AMDGPU/amdpal.ll