28void MCAsmInfoELF::anchor() {}
39bool MCAsmInfoELF::useCodeAlign(
const MCSection &Sec)
const {
52 if (Name.find_first_not_of(
"0123456789_."
53 "abcdefghijklmnopqrstuvwxyz"
54 "ABCDEFGHIJKLMNOPQRSTUVWXYZ") == Name.npos) {
59 for (
const char *
B = Name.begin(), *
E = Name.end();
B <
E; ++
B) {
74void MCAsmInfoELF::printSwitchToSection(
const MCSection &Section,
75 uint32_t Subsection,
const Triple &
T,
77 auto &Sec =
static_cast<const MCSectionELF &
>(
Section);
81 OS <<
'\t' << Subsection;
139 }
else if (
T.isARM() ||
T.isThumb()) {
142 }
else if (
T.isAArch64()) {
168 OS <<
"preinit_array";
184 OS <<
"llvm_linker_options";
186 OS <<
"llvm_call_graph_profile";
188 OS <<
"llvm_dependent_libraries";
190 OS <<
"llvm_sympart";
192 OS <<
"llvm_bb_addr_map";
194 OS <<
"llvm_offloading";
198 OS <<
"llvm_jt_sizes";
200 OS <<
"llvm_cfi_jump_table";
202 OS <<
"llvm_call_graph";
209 OS <<
"," << Sec.EntrySize;
228 OS <<
",unique," << Sec.UniqueID;
233 OS <<
"\t.subsection\t" << Subsection;
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
static void printName(raw_ostream &OS, StringRef Name)
static uint32_t getFlags(const Symbol *Sym)
bool usesSunStyleELFSectionSwitchSyntax() const
StringRef PrivateGlobalPrefix
This prefix is used for globals like constant pool entries that are completely private to the ....
const char * WeakRefDirective
This directive, if non-null, is used to declare a global as being a weak undefined symbol.
StringRef PrivateLabelPrefix
This prefix is used for labels for basic blocks.
StringRef getCommentString() const
bool HasPreferredAlignment
virtual bool shouldOmitSectionDirective(StringRef SectionName) const
Return true if the .section directive should be omitted when emitting SectionName.
bool HasIdentDirective
True if the target has a .ident directive, this is true for ELF targets.
Context object for machine code objects.
MCSectionELF * getELFSection(const Twine &Section, unsigned Type, unsigned Flags)
const Triple & getTargetTriple() const
Instances of this class represent a uniqued identifier for a section in the current translation unit.
StringRef getName() const
StringRef - Represent a constant reference to a string, i.e.
Triple - Helper class for working with autoconf configuration names.
static Twine utohexstr(uint64_t Val)
This class implements an extremely fast bulk output stream that can only output to a stream.
@ XCORE_SHF_DP_SECTION
All sections with the "d" flag are grouped together by the linker to form the data section and the dp...
@ XCORE_SHF_CP_SECTION
All sections with the "c" flag are grouped together by the linker to form the constant pool and the c...
@ SHT_LLVM_DEPENDENT_LIBRARIES
@ SHT_LLVM_LINKER_OPTIONS
@ SHT_LLVM_CALL_GRAPH_PROFILE
@ SHT_LLVM_CFI_JUMP_TABLE
This is an optimization pass for GlobalISel generic memory operations.