28void MCAsmInfoELF::anchor() {}
38bool MCAsmInfoELF::useCodeAlign(
const MCSection &Sec)
const {
50 if (Name.find_first_not_of(
"0123456789_."
51 "abcdefghijklmnopqrstuvwxyz"
52 "ABCDEFGHIJKLMNOPQRSTUVWXYZ") == Name.npos) {
57 for (
const char *
B = Name.begin(), *
E = Name.end();
B <
E; ++
B) {
72void MCAsmInfoELF::printSwitchToSection(
const MCSection &Section,
73 uint32_t Subsection,
const Triple &
T,
75 auto &Sec =
static_cast<const MCSectionELF &
>(
Section);
79 OS <<
'\t' << Subsection;
137 }
else if (
T.isARM() ||
T.isThumb()) {
140 }
else if (
T.isAArch64()) {
166 OS <<
"preinit_array";
182 OS <<
"llvm_linker_options";
184 OS <<
"llvm_call_graph_profile";
186 OS <<
"llvm_dependent_libraries";
188 OS <<
"llvm_sympart";
190 OS <<
"llvm_bb_addr_map";
192 OS <<
"llvm_offloading";
196 OS <<
"llvm_jt_sizes";
198 OS <<
"llvm_cfi_jump_table";
205 OS <<
"," << Sec.EntrySize;
224 OS <<
",unique," << Sec.UniqueID;
229 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
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.
@ SHT_LLVM_DEPENDENT_LIBRARIES
@ SHT_LLVM_LINKER_OPTIONS
@ SHT_LLVM_CALL_GRAPH_PROFILE
@ SHT_LLVM_CFI_JUMP_TABLE
@ 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...
This is an optimization pass for GlobalISel generic memory operations.