| //===- NVPTXSection.h - NVPTX-specific section representation -*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This file declares the NVPTXSection class. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef LLVM_NVPTXSECTION_H |
| #define LLVM_NVPTXSECTION_H |
| |
| #include "llvm/IR/GlobalVariable.h" |
| #include "llvm/MC/MCSection.h" |
| #include <vector> |
| |
| namespace llvm { |
| /// NVPTXSection - Represents a section in PTX |
| /// PTX does not have sections. We create this class in order to use |
| /// the ASMPrint interface. |
| /// |
| class NVPTXSection : public MCSection { |
| |
| public: |
| NVPTXSection(SectionVariant V, SectionKind K) : MCSection(V, K) {} |
| ~NVPTXSection() {} |
| |
| /// Override this as NVPTX has its own way of printing switching |
| /// to a section. |
| virtual void PrintSwitchToSection(const MCAsmInfo &MAI, |
| raw_ostream &OS) const {} |
| |
| /// Base address of PTX sections is zero. |
| virtual bool isBaseAddressKnownZero() const { return true; } |
| virtual bool UseCodeAlign() const { return false; } |
| virtual bool isVirtualSection() const { return false; } |
| virtual std::string getLabelBeginName() const { return ""; } |
| virtual std::string getLabelEndName() const { return ""; } |
| }; |
| |
| } // end namespace llvm |
| |
| #endif |