blob: 1fddc88a705afe32bdac9ea4af004e6f2083bfaa [file] [log] [blame]
Tom Stellarde135ffd2015-09-25 21:41:28 +00001//===-- AMDGPUHSATargetObjectFile.cpp - AMDGPU Object Files ---------------===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
Tom Stellardc93fc112015-12-10 02:13:01 +000010#include "AMDGPUTargetObjectFile.h"
Tom Stellard00f2f912015-12-02 19:47:57 +000011#include "AMDGPU.h"
Tom Stellarde135ffd2015-09-25 21:41:28 +000012#include "llvm/MC/MCContext.h"
13#include "llvm/MC/MCSectionELF.h"
14#include "llvm/Support/ELF.h"
Konstantin Zhuravlyov08326b62016-10-20 18:12:38 +000015#include "Utils/AMDGPUBaseInfo.h"
Tom Stellarde135ffd2015-09-25 21:41:28 +000016
17using namespace llvm;
18
Tom Stellardc93fc112015-12-10 02:13:01 +000019//===----------------------------------------------------------------------===//
20// Generic Object File
21//===----------------------------------------------------------------------===//
22
Eric Christopher4367c7f2016-09-16 07:33:15 +000023MCSection *AMDGPUTargetObjectFile::SelectSectionForGlobal(
Peter Collingbourne67335642016-10-24 19:23:39 +000024 const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const {
25 if (Kind.isReadOnly() && AMDGPU::isReadOnlySegment(GO) &&
Konstantin Zhuravlyov08326b62016-10-20 18:12:38 +000026 AMDGPU::shouldEmitConstantsToTextSection(TM.getTargetTriple()))
Tom Stellardc93fc112015-12-10 02:13:01 +000027 return TextSection;
28
Peter Collingbourne67335642016-10-24 19:23:39 +000029 return TargetLoweringObjectFileELF::SelectSectionForGlobal(GO, Kind, TM);
Tom Stellardc93fc112015-12-10 02:13:01 +000030}