brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 584e41b Raw
38 lines · cpp
1//===-- AMDGPUHSATargetObjectFile.cpp - AMDGPU Object Files ---------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#include "AMDGPUTargetObjectFile.h"10#include "Utils/AMDGPUBaseInfo.h"11#include "llvm/IR/GlobalObject.h"12#include "llvm/MC/SectionKind.h"13#include "llvm/Target/TargetMachine.h"14using namespace llvm;15 16//===----------------------------------------------------------------------===//17// Generic Object File18//===----------------------------------------------------------------------===//19 20MCSection *AMDGPUTargetObjectFile::SelectSectionForGlobal(21    const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const {22  if (Kind.isReadOnly() && AMDGPU::isReadOnlySegment(GO) &&23      AMDGPU::shouldEmitConstantsToTextSection(TM.getTargetTriple()))24    return TextSection;25 26  return TargetLoweringObjectFileELF::SelectSectionForGlobal(GO, Kind, TM);27}28 29MCSection *AMDGPUTargetObjectFile::getExplicitSectionGlobal(30    const GlobalObject *GO, SectionKind SK, const TargetMachine &TM) const {31  // Set metadata access for the explicit section32  StringRef SectionName = GO->getSection();33  if (SectionName.starts_with(".AMDGPU.comment."))34    SK = SectionKind::getMetadata();35 36  return TargetLoweringObjectFileELF::getExplicitSectionGlobal(GO, SK, TM);37}38