blob: 7b3c858e7c3630dd4a032d91c6fba91575daa3ec [file] [log] [blame]
Tom Stellard347ac792015-06-26 21:15:07 +00001//===-- AMDGPUBaseInfo.h - Top level definitions for AMDGPU -----*- C++ -*-===//
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
10#ifndef LLVM_LIB_TARGET_AMDGPU_UTILS_AMDGPUBASEINFO_H
11#define LLVM_LIB_TARGET_AMDGPU_UTILS_AMDGPUBASEINFO_H
12
13#include "AMDKernelCodeT.h"
14
15namespace llvm {
16
17class FeatureBitset;
Tom Stellarde3b5aea2015-12-02 17:00:42 +000018class GlobalValue;
Tom Stellarde135ffd2015-09-25 21:41:28 +000019class MCContext;
20class MCSection;
Tom Stellard347ac792015-06-26 21:15:07 +000021
22namespace AMDGPU {
23
24struct IsaVersion {
25 unsigned Major;
26 unsigned Minor;
27 unsigned Stepping;
28};
29
30IsaVersion getIsaVersion(const FeatureBitset &Features);
Tom Stellardff7416b2015-06-26 21:58:31 +000031void initDefaultAMDKernelCodeT(amd_kernel_code_t &Header,
32 const FeatureBitset &Features);
Tom Stellarde135ffd2015-09-25 21:41:28 +000033MCSection *getHSATextSection(MCContext &Ctx);
Tom Stellard347ac792015-06-26 21:15:07 +000034
Tom Stellard00f2f912015-12-02 19:47:57 +000035MCSection *getHSADataGlobalAgentSection(MCContext &Ctx);
36
37MCSection *getHSADataGlobalProgramSection(MCContext &Ctx);
38
Tom Stellard9760f032015-12-03 03:34:32 +000039MCSection *getHSARodataReadonlyAgentSection(MCContext &Ctx);
40
Tom Stellarde3b5aea2015-12-02 17:00:42 +000041bool isGroupSegment(const GlobalValue *GV);
Tom Stellard00f2f912015-12-02 19:47:57 +000042bool isGlobalSegment(const GlobalValue *GV);
43bool isReadOnlySegment(const GlobalValue *GV);
Tom Stellarde3b5aea2015-12-02 17:00:42 +000044
Tom Stellard347ac792015-06-26 21:15:07 +000045} // end namespace AMDGPU
46} // end namespace llvm
47
48#endif