//===-- AMDGPUHSATargetObjectFile.cpp - AMDGPU Object Files ---------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "AMDGPUTargetObjectFile.h" #include "AMDGPU.h" #include "AMDGPUTargetMachine.h" #include "Utils/AMDGPUBaseInfo.h" #include "llvm/BinaryFormat/ELF.h" #include "llvm/MC/MCContext.h" #include "llvm/MC/MCSectionELF.h" using namespace llvm; //===----------------------------------------------------------------------===// // Generic Object File //===----------------------------------------------------------------------===// MCSection *AMDGPUTargetObjectFile::SelectSectionForGlobal( const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const { if (Kind.isReadOnly() && AMDGPU::isReadOnlySegment(GO) && AMDGPU::shouldEmitConstantsToTextSection(TM.getTargetTriple())) return TextSection; return TargetLoweringObjectFileELF::SelectSectionForGlobal(GO, Kind, TM); } MCSection *AMDGPUTargetObjectFile::getExplicitSectionGlobal( const GlobalObject *GO, SectionKind SK, const TargetMachine &TM) const { // Set metadata access for the explicit section StringRef SectionName = GO->getSection(); if (SectionName.startswith(".AMDGPU.comment.")) SK = SectionKind::getMetadata(); return TargetLoweringObjectFileELF::getExplicitSectionGlobal(GO, SK, TM); }