28void MCAsmInfoELF::anchor() {}
39bool MCAsmInfoELF::useCodeAlign(
const MCSection &Sec)
const {
53 if (Name.find_first_not_of(
"0123456789_."
54 "abcdefghijklmnopqrstuvwxyz"
55 "ABCDEFGHIJKLMNOPQRSTUVWXYZ") == Name.npos) {
60 for (
const char *
B = Name.begin(), *
E = Name.end();
B <
E; ++
B) {
75void MCAsmInfoELF::printSwitchToSection(
const MCSection &Section,
76 uint32_t Subsection,
const Triple &
T,
78 auto &Sec =
static_cast<const MCSectionELF &
>(
Section);
82 OS <<
'\t' << Subsection;
140 }
else if (
T.isARM() ||
T.isThumb()) {
143 }
else if (
T.isAArch64()) {
169 OS <<
"preinit_array";
185 OS <<
"llvm_linker_options";
187 OS <<
"llvm_call_graph_profile";
189 OS <<
"llvm_dependent_libraries";
191 OS <<
"llvm_sympart";
193 OS <<
"llvm_bb_addr_map";
195 OS <<
"llvm_offloading";
199 OS <<
"llvm_jt_sizes";
201 OS <<
"llvm_cfi_jump_table";
203 OS <<
"llvm_call_graph";
210 OS <<
"," << Sec.EntrySize;
229 OS <<
",unique," << Sec.UniqueID;
234 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)
MCAsmInfoELF(const MCTargetOptions &Options)
StringRef InternalSymbolPrefix
For internal use by compiler and assembler, not meant to be visible externally.
bool usesSunStyleELFSectionSwitchSyntax() const
MCAsmInfo(const MCTargetOptions &Options)
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. Defaults to "L".
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.