LLVM 23.0.0git
llvm::NVPTXTargetStreamer Class Reference

Implments NVPTX-specific streamer. More...

#include "Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.h"

Inheritance diagram for llvm::NVPTXTargetStreamer:
[legend]

Public Member Functions

 NVPTXTargetStreamer (MCStreamer &S)
 ~NVPTXTargetStreamer () override
virtual void emitBanner ()
 Emit the banner which specifies details of PTX generator.
virtual void emitVersionDirective (unsigned PTXVersion)
 Emit the PTX ISA version number.
virtual void emitTargetDirective (StringRef Target, bool TexModeIndependent, bool HasDebug)
 Emit architecture and platform target.
virtual void emitAddressSizeDirective (unsigned AddrSize)
 Emit address size used for this PTX module.
void outputDwarfFileDirectives ()
 Outputs the list of the DWARF '.file' directives to the streamer.
void closeLastSection ()
 Close last section.
void emitDwarfFileDirective (StringRef Directive) override
 Record DWARF file directives for later output.
void changeSection (const MCSection *CurSection, MCSection *Section, uint32_t SubSection, raw_ostream &OS) override
 Update streamer for a new active section.
void emitRawBytes (StringRef Data) override
 Emit the bytes in Data into the output.
void emitValue (const MCExpr *Value) override
 Makes sure that labels are mangled the same way as the actual symbols.
Public Member Functions inherited from llvm::MCTargetStreamer
 MCTargetStreamer (MCStreamer &S)
virtual ~MCTargetStreamer ()
MCStreamergetStreamer ()
MCContextgetContext ()
virtual void emitLabel (MCSymbol *Symbol)
virtual void emitAssignment (MCSymbol *Symbol, const MCExpr *Value)
virtual void prettyPrintAsm (MCInstPrinter &InstPrinter, uint64_t Address, const MCInst &Inst, const MCSubtargetInfo &STI, raw_ostream &OS)
virtual void emitConstantPools ()
virtual void finish ()

Additional Inherited Members

Protected Attributes inherited from llvm::MCTargetStreamer
MCStreamerStreamer

Detailed Description

Implments NVPTX-specific streamer.

Definition at line 19 of file NVPTXTargetStreamer.h.

Constructor & Destructor Documentation

◆ NVPTXTargetStreamer()

NVPTXTargetStreamer::NVPTXTargetStreamer ( MCStreamer & S)

◆ ~NVPTXTargetStreamer()

NVPTXTargetStreamer::~NVPTXTargetStreamer ( )
overridedefault

Member Function Documentation

◆ changeSection()

void NVPTXTargetStreamer::changeSection ( const MCSection * CurSection,
MCSection * Section,
uint32_t SubSection,
raw_ostream & OS )
overridevirtual

Update streamer for a new active section.

This is called by popSection and switchSection, if the current section changes.

Reimplemented from llvm::MCTargetStreamer.

Definition at line 86 of file NVPTXTargetStreamer.cpp.

References assert(), llvm::MCStreamer::getContext(), llvm::MCContext::getObjectFileInfo(), llvm::MCTargetStreamer::getStreamer(), isDwarfSection(), and outputDwarfFileDirectives().

◆ closeLastSection()

void NVPTXTargetStreamer::closeLastSection ( )

Close last section.

Definition at line 37 of file NVPTXTargetStreamer.cpp.

References llvm::MCStreamer::emitRawText(), and llvm::MCTargetStreamer::getStreamer().

◆ emitAddressSizeDirective()

virtual void llvm::NVPTXTargetStreamer::emitAddressSizeDirective ( unsigned AddrSize)
inlinevirtual

Emit address size used for this PTX module.

Reimplemented in llvm::NVPTXAsmTargetStreamer.

Definition at line 39 of file NVPTXTargetStreamer.h.

◆ emitBanner()

virtual void llvm::NVPTXTargetStreamer::emitBanner ( )
inlinevirtual

Emit the banner which specifies details of PTX generator.

Reimplemented in llvm::NVPTXAsmTargetStreamer.

Definition at line 29 of file NVPTXTargetStreamer.h.

◆ emitDwarfFileDirective()

void NVPTXTargetStreamer::emitDwarfFileDirective ( StringRef Directive)
overridevirtual

Record DWARF file directives for later output.

According to PTX ISA, CUDA Toolkit documentation, 11.5.3. Debugging Directives: .file (http://docs.nvidia.com/cuda/parallel-thread-execution/index.html#debugging-directives-file), The .file directive is allowed only in the outermost scope, i.e., at the same level as kernel and device function declarations. Also, the order of the .loc and .file directive does not matter, .file directives may follow the .loc directives where the file is referenced. LLVM emits .file directives immediately the location debug info is emitted, i.e. they may be emitted inside functions. We gather all these directives and emit them outside of the sections and, thus, outside of the functions.

Reimplemented from llvm::MCTargetStreamer.

Definition at line 42 of file NVPTXTargetStreamer.cpp.

◆ emitRawBytes()

void NVPTXTargetStreamer::emitRawBytes ( StringRef Data)
overridevirtual

Emit the bytes in Data into the output.

This is used to emit bytes in Data as sequence of .byte directives.

Reimplemented from llvm::MCTargetStreamer.

Definition at line 104 of file NVPTXTargetStreamer.cpp.

References llvm::Data, llvm::MCTargetStreamer::emitRawBytes(), llvm::MCAsmInfo::getData8bitsDirective(), I, llvm::raw_svector_ostream::str(), and llvm::MCTargetStreamer::Streamer.

◆ emitTargetDirective()

virtual void llvm::NVPTXTargetStreamer::emitTargetDirective ( StringRef Target,
bool TexModeIndependent,
bool HasDebug )
inlinevirtual

Emit architecture and platform target.

Reimplemented in llvm::NVPTXAsmTargetStreamer.

Definition at line 35 of file NVPTXTargetStreamer.h.

◆ emitValue()

void NVPTXTargetStreamer::emitValue ( const MCExpr * Value)
overridevirtual

◆ emitVersionDirective()

virtual void llvm::NVPTXTargetStreamer::emitVersionDirective ( unsigned PTXVersion)
inlinevirtual

Emit the PTX ISA version number.

Reimplemented in llvm::NVPTXAsmTargetStreamer.

Definition at line 32 of file NVPTXTargetStreamer.h.

◆ outputDwarfFileDirectives()

void NVPTXTargetStreamer::outputDwarfFileDirectives ( )

Outputs the list of the DWARF '.file' directives to the streamer.

Definition at line 31 of file NVPTXTargetStreamer.cpp.

References llvm::MCStreamer::emitRawText(), and llvm::MCTargetStreamer::getStreamer().

Referenced by changeSection(), and llvm::NVPTXAsmPrinter::doFinalization().


The documentation for this class was generated from the following files: