1239310Sdim//===-- NVPTXTargetObjectFile.h - NVPTX Object Info -------------*- C++ -*-===// 2239310Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6239310Sdim// 7239310Sdim//===----------------------------------------------------------------------===// 8239310Sdim 9280031Sdim#ifndef LLVM_LIB_TARGET_NVPTX_NVPTXTARGETOBJECTFILE_H 10280031Sdim#define LLVM_LIB_TARGET_NVPTX_NVPTXTARGETOBJECTFILE_H 11239310Sdim 12314564Sdim#include "llvm/MC/MCSection.h" 13314564Sdim#include "llvm/MC/SectionKind.h" 14341825Sdim#include "llvm/Target/TargetLoweringObjectFile.h" 15239310Sdim 16239310Sdimnamespace llvm { 17239310Sdim 18239310Sdimclass NVPTXTargetObjectFile : public TargetLoweringObjectFile { 19239310Sdimpublic: 20341825Sdim NVPTXTargetObjectFile() : TargetLoweringObjectFile() {} 21239310Sdim 22314564Sdim ~NVPTXTargetObjectFile() override; 23261991Sdim 24276479Sdim void Initialize(MCContext &ctx, const TargetMachine &TM) override { 25261991Sdim TargetLoweringObjectFile::Initialize(ctx, TM); 26239310Sdim } 27239310Sdim 28296417Sdim MCSection *getSectionForConstant(const DataLayout &DL, SectionKind Kind, 29309124Sdim const Constant *C, 30309124Sdim unsigned &Align) const override { 31239310Sdim return ReadOnlySection; 32239310Sdim } 33239310Sdim 34314564Sdim MCSection *getExplicitSectionGlobal(const GlobalObject *GO, SectionKind Kind, 35288943Sdim const TargetMachine &TM) const override { 36239310Sdim return DataSection; 37239310Sdim } 38239310Sdim 39314564Sdim MCSection *SelectSectionForGlobal(const GlobalObject *GO, SectionKind Kind, 40288943Sdim const TargetMachine &TM) const override; 41239310Sdim}; 42239310Sdim 43239310Sdim} // end namespace llvm 44239310Sdim 45314564Sdim#endif // LLVM_LIB_TARGET_NVPTX_NVPTXTARGETOBJECTFILE_H 46