diff options
author | Konstantin Zhuravlyov <kzhuravl_dev@outlook.com> | 2018-06-12 18:33:51 +0000 |
---|---|---|
committer | Konstantin Zhuravlyov <kzhuravl_dev@outlook.com> | 2018-06-12 18:33:51 +0000 |
commit | ce25bc3e82ead9ab7d91b0d42c68f8f43fa75fbc (patch) | |
tree | f1c1744e81ac1ba323cf82128dce5fb283f101a4 /llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp | |
parent | b2d3f2e5da501e8d3eea6ddaaad07fc6dc924114 (diff) | |
download | bcm5719-llvm-ce25bc3e82ead9ab7d91b0d42c68f8f43fa75fbc.tar.gz bcm5719-llvm-ce25bc3e82ead9ab7d91b0d42c68f8f43fa75fbc.zip |
AMDHSA/NFC: Code object v3 updates (additional):
- Move section selection and alignment to AMDGPUAsmPrinter
llvm-svn: 334521
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp index 8e56ec60eff..5d6e98a1861 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp @@ -220,10 +220,26 @@ void AMDGPUAsmPrinter::EmitFunctionBodyEnd() { TM.getTargetTriple().getOS() != Triple::AMDHSA) return; + auto &Streamer = getTargetStreamer()->getStreamer(); + auto &Context = Streamer.getContext(); + auto &ObjectFileInfo = *Context.getObjectFileInfo(); + auto &ReadOnlySection = *ObjectFileInfo.getReadOnlySection(); + + Streamer.PushSection(); + Streamer.SwitchSection(&ReadOnlySection); + + // CP microcode requires the kernel descriptor to be allocated on 64 byte + // alignment. + Streamer.EmitValueToAlignment(64, 0, 1, 0); + if (ReadOnlySection.getAlignment() < 64) + ReadOnlySection.setAlignment(64); + SmallString<128> KernelName; getNameWithPrefix(KernelName, &MF->getFunction()); getTargetStreamer()->EmitAmdhsaKernelDescriptor( KernelName, getAmdhsaKernelDescriptor(*MF, CurrentProgramInfo)); + + Streamer.PopSection(); } void AMDGPUAsmPrinter::EmitFunctionEntryLabel() { |