1292915Sdim//===-- AMDGPUHSATargetObjectFile.cpp - AMDGPU Object Files ---------------===// 2292915Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6292915Sdim// 7292915Sdim//===----------------------------------------------------------------------===// 8292915Sdim 9292915Sdim#include "AMDGPUTargetObjectFile.h" 10292915Sdim#include "AMDGPU.h" 11321369Sdim#include "AMDGPUTargetMachine.h" 12321369Sdim#include "Utils/AMDGPUBaseInfo.h" 13321369Sdim#include "llvm/BinaryFormat/ELF.h" 14292915Sdim#include "llvm/MC/MCContext.h" 15292915Sdim#include "llvm/MC/MCSectionELF.h" 16292915Sdim 17292915Sdimusing namespace llvm; 18292915Sdim 19292915Sdim//===----------------------------------------------------------------------===// 20292915Sdim// Generic Object File 21292915Sdim//===----------------------------------------------------------------------===// 22292915Sdim 23314564SdimMCSection *AMDGPUTargetObjectFile::SelectSectionForGlobal( 24314564Sdim const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const { 25327952Sdim if (Kind.isReadOnly() && AMDGPU::isReadOnlySegment(GO) && 26314564Sdim AMDGPU::shouldEmitConstantsToTextSection(TM.getTargetTriple())) 27292915Sdim return TextSection; 28292915Sdim 29314564Sdim return TargetLoweringObjectFileELF::SelectSectionForGlobal(GO, Kind, TM); 30292915Sdim} 31344779Sdim 32344779SdimMCSection *AMDGPUTargetObjectFile::getExplicitSectionGlobal( 33344779Sdim const GlobalObject *GO, SectionKind SK, const TargetMachine &TM) const { 34344779Sdim // Set metadata access for the explicit section 35344779Sdim StringRef SectionName = GO->getSection(); 36344779Sdim if (SectionName.startswith(".AMDGPU.comment.")) 37344779Sdim SK = SectionKind::getMetadata(); 38344779Sdim 39344779Sdim return TargetLoweringObjectFileELF::getExplicitSectionGlobal(GO, SK, TM); 40344779Sdim} 41