LLVM
8.0.1
|
Implments NVPTX-specific streamer. More...
#include "Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.h"
Public Member Functions | |
NVPTXTargetStreamer (MCStreamer &S) | |
~NVPTXTargetStreamer () override | |
void | outputDwarfFileDirectives () |
Outputs the list of the DWARF '.file' directives to the streamer. 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 () |
MCStreamer & | getStreamer () |
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 | |
MCStreamer & | Streamer |
Implments NVPTX-specific streamer.
Definition at line 19 of file NVPTXTargetStreamer.h.
NVPTXTargetStreamer::NVPTXTargetStreamer | ( | MCStreamer & | S | ) |
Definition at line 24 of file NVPTXTargetStreamer.cpp.
References ~NVPTXTargetStreamer().
|
overridedefault |
Referenced by NVPTXTargetStreamer().
|
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 79 of file NVPTXTargetStreamer.cpp.
References assert(), llvm::MCStreamer::getContext(), llvm::MCContext::getObjectFileInfo(), llvm::MCTargetStreamer::getStreamer(), llvm::MCObjectFileInfo::getTargetTriple(), isDwarfSection(), outputDwarfFileDirectives(), and llvm::MCSection::PrintSwitchToSection().
|
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 34 of file NVPTXTargetStreamer.cpp.
References llvm::SmallVectorImpl< T >::emplace_back().
|
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 100 of file NVPTXTargetStreamer.cpp.
References llvm::StringRef::bytes_begin(), llvm::MCContext::getAsmInfo(), llvm::MCStreamer::getContext(), llvm::MCAsmInfo::getData8bitsDirective(), I, llvm::StringRef::size(), and llvm::MCTargetStreamer::Streamer.
void NVPTXTargetStreamer::outputDwarfFileDirectives | ( | ) |
Outputs the list of the DWARF '.file' directives to the streamer.
Definition at line 28 of file NVPTXTargetStreamer.cpp.
References llvm::MCStreamer::EmitRawText(), and llvm::MCTargetStreamer::getStreamer().
Referenced by changeSection().