blob: e2f718bd3c34d5058c04efa6c191ff8ac940219f [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"
Chandler Carruth6bda14b2017-06-06 11:49:48 +000012#include "AMDGPUTargetMachine.h"
13#include "Utils/AMDGPUBaseInfo.h"
Zachary Turner264b5d92017-06-07 03:48:56 +000014#include "llvm/BinaryFormat/ELF.h"
Tom Stellarde135ffd2015-09-25 21:41:28 +000015#include "llvm/MC/MCContext.h"
16#include "llvm/MC/MCSectionELF.h"
Tom Stellarde135ffd2015-09-25 21:41:28 +000017
18using namespace llvm;
19
Tom Stellardc93fc112015-12-10 02:13:01 +000020//===----------------------------------------------------------------------===//
21// Generic Object File
22//===----------------------------------------------------------------------===//
23
Eric Christopher4367c7f2016-09-16 07:33:15 +000024MCSection *AMDGPUTargetObjectFile::SelectSectionForGlobal(
Peter Collingbourne67335642016-10-24 19:23:39 +000025 const GlobalObject *GO, SectionKind Kind, const TargetMachine &TM) const {
Konstantin Zhuravlyov435151a2017-11-01 19:12:38 +000026 if (Kind.isReadOnly() && AMDGPU::isReadOnlySegment(GO) &&
Konstantin Zhuravlyov08326b62016-10-20 18:12:38 +000027 AMDGPU::shouldEmitConstantsToTextSection(TM.getTargetTriple()))
Tom Stellardc93fc112015-12-10 02:13:01 +000028 return TextSection;
29
Peter Collingbourne67335642016-10-24 19:23:39 +000030 return TargetLoweringObjectFileELF::SelectSectionForGlobal(GO, Kind, TM);
Tom Stellardc93fc112015-12-10 02:13:01 +000031}