LLVM  9.0.0svn
Public Member Functions | List of all members
llvm::NVPTXTargetStreamer Class Reference

Implments NVPTX-specific streamer. More...

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

Inheritance diagram for llvm::NVPTXTargetStreamer:
Inheritance graph
[legend]
Collaboration diagram for llvm::NVPTXTargetStreamer:
Collaboration graph
[legend]

Public Member Functions

 NVPTXTargetStreamer (MCStreamer &S)
 
 ~NVPTXTargetStreamer () override
 
void outputDwarfFileDirectives ()
 Outputs the list of the DWARF '.file' directives to the streamer. More...
 
void closeLastSection ()
 Close last section. More...
 
void emitDwarfFileDirective (StringRef Directive) override
 Record DWARF file directives for later output. More...
 
void changeSection (const MCSection *CurSection, MCSection *Section, const MCExpr *SubSection, raw_ostream &OS) override
 Update streamer for a new active section. More...
 
void emitRawBytes (StringRef Data) override
 Emit the bytes in Data into the output. More...
 
- Public Member Functions inherited from llvm::MCTargetStreamer
 MCTargetStreamer (MCStreamer &S)
 
virtual ~MCTargetStreamer ()
 
MCStreamergetStreamer ()
 
virtual void emitLabel (MCSymbol *Symbol)
 
virtual void emitAssignment (MCSymbol *Symbol, const MCExpr *Value)
 
virtual void prettyPrintAsm (MCInstPrinter &InstPrinter, raw_ostream &OS, const MCInst &Inst, const MCSubtargetInfo &STI)
 
virtual void emitValue (const MCExpr *Value)
 
virtual void finish ()
 

Additional Inherited Members

- Protected Attributes inherited from llvm::MCTargetStreamer
MCStreamerStreamer
 

Detailed Description

Implments NVPTX-specific streamer.

Definition at line 18 of file NVPTXTargetStreamer.h.

Constructor & Destructor Documentation

◆ NVPTXTargetStreamer()

NVPTXTargetStreamer::NVPTXTargetStreamer ( MCStreamer S)

Definition at line 23 of file NVPTXTargetStreamer.cpp.

References ~NVPTXTargetStreamer().

◆ ~NVPTXTargetStreamer()

NVPTXTargetStreamer::~NVPTXTargetStreamer ( )
overridedefault

Referenced by NVPTXTargetStreamer().

Member Function Documentation

◆ changeSection()

void NVPTXTargetStreamer::changeSection ( const MCSection CurSection,
MCSection Section,
const MCExpr 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 83 of file NVPTXTargetStreamer.cpp.

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

◆ closeLastSection()

void NVPTXTargetStreamer::closeLastSection ( )

Close last section.

Definition at line 33 of file NVPTXTargetStreamer.cpp.

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

◆ 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 38 of file NVPTXTargetStreamer.cpp.

References llvm::SmallVectorImpl< T >::emplace_back().

◆ 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::StringRef::bytes_begin(), llvm::MCTargetStreamer::emitRawBytes(), llvm::MCContext::getAsmInfo(), llvm::MCStreamer::getContext(), llvm::MCAsmInfo::getData8bitsDirective(), I, llvm::StringRef::size(), and llvm::MCTargetStreamer::Streamer.

◆ outputDwarfFileDirectives()

void NVPTXTargetStreamer::outputDwarfFileDirectives ( )

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

Definition at line 27 of file NVPTXTargetStreamer.cpp.

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

Referenced by changeSection().


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