9#ifndef LLVM_LIB_TARGET_NVPTX_MCTARGETDESC_NVPTXTARGETSTREAMER_H
10#define LLVM_LIB_TARGET_NVPTX_MCTARGETDESC_NVPTXTARGETSTREAMER_H
25 bool HasSections =
false;
51 std::optional<unsigned>
Count = std::nullopt) {}
107 bool HasDebug)
override;
114 std::optional<unsigned>
Count)
override;
Represent a constant reference to an array (0 or more elements consecutively in memory),...
Base class for the full range of assembler expressions which are needed for parsing.
Instances of this class represent a uniqued identifier for a section in the current translation unit.
Streaming machine code generation interface.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
MCTargetStreamer(MCStreamer &S)
void emitBanner() override
Emit the banner which specifies details of PTX generator.
void emitVersionDirective(unsigned PTXVersion) override
Emit the PTX ISA version number.
void emitTargetDirective(StringRef Target, bool TexModeIndependent, bool HasDebug) override
Emit architecture and platform target.
void emitPragmaDirective(StringRef Pragma) override
Emit a pragma governing the code that follows it.
~NVPTXAsmTargetStreamer() override
void emitBranchTargetsDirective(ArrayRef< const MCSymbol * > Targets) override
Emit the list of branch targets a brx.idx may jump to.
void emitRegDirective(unsigned SizeInBits, StringRef Name, std::optional< unsigned > Count) override
Declare a register SizeInBits wide.
void emitEmptySectionDirective(StringRef Name) override
Emit a section with an empty body.
void emitLocalDirective(Align Alignment, const MCSymbol *Name, uint64_t Size) override
Declare Size bytes of local (stack) memory named Name.
void emitAddressSizeDirective(unsigned AddrSize) override
Emit address size used for this PTX module.
void emitAliasDirective(const MCSymbol *Name, const MCSymbol *Aliasee) override
Emit an alias from Name to Aliasee.
NVPTXAsmTargetStreamer(MCStreamer &S, formatted_raw_ostream &OS)
virtual void emitRegDirective(unsigned SizeInBits, StringRef Name, std::optional< unsigned > Count=std::nullopt)
Declare a register SizeInBits wide.
void emitDwarfFileDirective(StringRef Directive) override
Record DWARF file directives for later output.
virtual void emitAliasDirective(const MCSymbol *Name, const MCSymbol *Aliasee)
Emit an alias from Name to Aliasee.
virtual void emitTargetDirective(StringRef Target, bool TexModeIndependent, bool HasDebug)
Emit architecture and platform target.
virtual void emitVersionDirective(unsigned PTXVersion)
Emit the PTX ISA version number.
virtual void emitBranchTargetsDirective(ArrayRef< const MCSymbol * > Targets)
Emit the list of branch targets a brx.idx may jump to.
virtual void emitBanner()
Emit the banner which specifies details of PTX generator.
NVPTXTargetStreamer(MCStreamer &S)
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 emitRawBytes(StringRef Data) override
Emit the bytes in Data into the output.
virtual void emitLocalDirective(Align Alignment, const MCSymbol *Name, uint64_t Size)
Declare Size bytes of local (stack) memory named Name.
void changeSection(const MCSection *CurSection, MCSection *Section, uint32_t SubSection, raw_ostream &OS) override
Update streamer for a new active section.
~NVPTXTargetStreamer() override
virtual void emitEmptySectionDirective(StringRef Name)
Emit a section with an empty body.
void emitValue(const MCExpr *Value) override
Makes sure that labels are mangled the same way as the actual symbols.
void closeLastSection()
Close last section.
virtual void emitPragmaDirective(StringRef Pragma)
Emit a pragma governing the code that follows it.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
Represent a constant reference to a string, i.e.
Target - Wrapper for Target specific information.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
RelativeUniformCounterPtr ValuesPtrExpr VTableAddr Count
This struct is a compact representation of a valid (non-zero power of two) alignment.