32 for (
const std::string &S : DwarfFiles)
50 if (!Section || Section->isText())
89 assert(!SubSection &&
"SubSection is not null!");
97 OS <<
"\t.section\t" << Section->getName() <<
'\n';
112 unsigned NumElements =
Data.size();
113 const unsigned MaxLen = 40;
114 unsigned NumChunks = 1 + ((NumElements - 1) / MaxLen);
117 for (
unsigned I = 0;
I < NumChunks; ++
I) {
122 for (
auto It = std::next(
Data.bytes_begin(),
I * MaxLen),
123 End = (
I == NumChunks - 1)
125 : std::next(
Data.bytes_begin(), (
I + 1) * MaxLen);
161 "// Generated by LLVM NVPTX Back-End\n"
167 OS <<
".version " << (PTXVersion / 10) <<
"." << (PTXVersion % 10) <<
"\n";
171 bool TexModeIndependent,
173 OS <<
".target " <<
Target;
174 if (TexModeIndependent)
175 OS <<
", texmode_independent";
182 OS <<
".address_size " << AddrSize <<
"\n"
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
static bool isDwarfSection(const MCObjectFileInfo *FI, const MCSection *Section)
This class is intended to be used as a base class for asm properties and features specific to the tar...
const char * getData8bitsDirective() const
const MCObjectFileInfo * getObjectFileInfo() const
Base class for the full range of assembler expressions which are needed for parsing.
@ SymbolRef
References to labels and assigned expressions.
MCSection * getDwarfAccelTypesSection() const
MCSection * getDwarfGnuPubNamesSection() const
MCSection * getDwarfStrOffDWOSection() const
MCSection * getDwarfRangesSection() const
MCSection * getDwarfAccelNamespaceSection() const
MCSection * getDwarfLineDWOSection() const
MCSection * getDwarfStrOffSection() const
MCSection * getDwarfInfoDWOSection() const
MCSection * getDwarfTypesDWOSection() const
MCSection * getDwarfPubNamesSection() const
MCSection * getDwarfStrSection() const
MCSection * getDwarfLineStrSection() const
MCSection * getDwarfTUIndexSection() const
MCSection * getDwarfDebugNamesSection() const
MCSection * getDwarfAddrSection() const
MCSection * getDwarfLineSection() const
MCSection * getDwarfInfoSection() const
MCSection * getDwarfFrameSection() const
MCSection * getDwarfPubTypesSection() const
const MCSection * getDwarfDebugInlineSection() const
MCSection * getDwarfGnuPubTypesSection() const
MCSection * getDwarfStrDWOSection() const
MCSection * getDwarfAccelNamesSection() const
MCSection * getDwarfAbbrevDWOSection() const
MCSection * getDwarfAbbrevSection() const
MCSection * getDwarfSwiftASTSection() const
MCSection * getDwarfCUIndexSection() const
MCSection * getDwarfMacinfoSection() const
MCSection * getDwarfLocDWOSection() const
MCSection * getDwarfARangesSection() const
MCSection * getDwarfAccelObjCSection() const
MCSection * getDwarfLocSection() const
Instances of this class represent a uniqued identifier for a section in the current translation unit.
Streaming machine code generation interface.
MCContext & getContext() const
void emitRawText(const Twine &String)
If this file is backed by a assembly streamer, this dumps the specified string in the output ....
Represent a reference to a symbol from inside an expression.
const MCSymbol & getSymbol() const
StringRef getName() const
getName - Get the symbol name.
virtual void emitValue(const MCExpr *Value)
MCStreamer & getStreamer()
virtual void emitRawBytes(StringRef Data)
Emit the bytes in Data into the output.
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.
~NVPTXAsmTargetStreamer() override
void emitAddressSizeDirective(unsigned AddrSize) override
Emit address size used for this PTX module.
NVPTXAsmTargetStreamer(MCStreamer &S, formatted_raw_ostream &OS)
void emitDwarfFileDirective(StringRef Directive) override
Record DWARF file directives for later output.
NVPTXTargetStreamer(MCStreamer &S)
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.
void changeSection(const MCSection *CurSection, MCSection *Section, uint32_t SubSection, raw_ostream &OS) override
Update streamer for a new active section.
~NVPTXTargetStreamer() override
void emitValue(const MCExpr *Value) override
Makes sure that labels are mangled the same way as the actual symbols.
void closeLastSection()
Close last section.
SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better...
StringRef - Represent a constant reference to a string, i.e.
bool starts_with(StringRef Prefix) const
Check if this string starts with the given Prefix.
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.
A raw_ostream that writes to an SmallVector or SmallString.
StringRef str() const
Return a StringRef for the vector contents.
std::string getValidPTXIdentifier(StringRef Name)
This is an optimization pass for GlobalISel generic memory operations.
FunctionAddr VTableAddr uintptr_t uintptr_t Data
decltype(auto) cast(const From &Val)
cast<X> - Return the argument parameter cast to the specified type.