32 cl::desc(
"Disable emission of the extended flags in .loc directives."),
41 "Disable the usage of LEB128 directives, and generate .byte instead."),
78 MCSymbol *PCSym = Context.createTempSymbol();
93 if (
C ==
'[' ||
C ==
']')
110 for (
char C : Name) {
127 for (
const auto &
Desc : Descs) {
128 [[maybe_unused]]
auto It =
130 assert(It.second &&
"duplicate Kind");
131 [[maybe_unused]]
auto It2 =
140 "ensure the specifier is set in initializeVariantKinds");
155 Expr.print(OS,
this);
161 if (!E.getSubExpr()->evaluateAsRelocatable(Res, Asm))
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
#define clEnumVal(ENUMVAL, DESC)
This file contains constants used for implementing Dwarf debug support.
static cl::opt< DefaultOnOff > DwarfExtendedLoc("dwarf-extended-loc", cl::Hidden, cl::desc("Disable emission of the extended flags in .loc directives."), cl::values(clEnumVal(Default, "Default for platform"), clEnumVal(Enable, "Enabled"), clEnumVal(Disable, "Disabled")), cl::init(Default))
A container which contains a StringRef plus a precomputed hash.
void addInitialFrameState(const MCCFIInstruction &Inst)
bool UseAtForSpecifier
True if target uses @ (expr@specifier) for relocation specifiers.
virtual void printSpecifierExpr(raw_ostream &, const MCSpecifierExpr &) const
std::vector< MCCFIInstruction > InitialFrameState
llvm::DenseSet< llvm::CachedHashStringRef > & getReservedIdentifiers()
virtual bool evaluateAsRelocatableImpl(const MCSpecifierExpr &, MCValue &Res, const MCAssembler *Asm) const
bool doesAllowAtInName() const
const MCTargetOptions & TargetOptions
StringRef getSpecifierName(uint32_t S) const
MCAsmInfo(const MCTargetOptions &Options)
std::optional< uint32_t > getSpecifierForName(StringRef Name) const
void printExpr(raw_ostream &, const MCExpr &) const
uint16_t DwarfFDERelSymbolSpec
The optional specifier to use for the relative FDE symbol references.
llvm::DenseMap< AtSpecifierKind, StringRef > AtSpecifierToName
const MCExpr * getExprForFDESymbol(const MCSymbol *Sym, unsigned Encoding, MCStreamer &Streamer) const
bool isAcceptableChar(char C) const
Return true if C is an acceptable character inside a symbol name.
virtual bool shouldOmitSectionDirective(StringRef SectionName) const
Return true if the .section directive should be omitted when emitting SectionName.
llvm::StringMap< AtSpecifierKind > NameToAtSpecifier
bool usesELFSectionDirectiveForBSS() const
bool SupportsExtendedDwarfLocDirective
True if the target supports flags in ".loc" directive, false if only location is allowed.
void initializeAtSpecifiers(EnumStrings< AtSpecifierKind, 1 >)
virtual const MCExpr * getExprForPersonalitySymbol(const MCSymbol *Sym, unsigned Encoding, MCStreamer &Streamer) const
bool HasLEB128Directives
True if the target supports LEB128 directives.
bool isValidUnquotedName(StringRef Name) const
Return true if the identifier Name does not need quotes to be syntactically correct.
static const MCBinaryExpr * createSub(const MCExpr *LHS, const MCExpr *RHS, MCContext &Ctx)
Context object for machine code objects.
Base class for the full range of assembler expressions which are needed for parsing.
Extension point for target-specific MCExpr subclasses with a relocation specifier,...
static const MCSpecifierExpr * create(const MCExpr *Expr, Spec S, MCContext &Ctx, SMLoc Loc=SMLoc())
Streaming machine code generation interface.
MCContext & getContext() const
virtual void emitLabel(MCSymbol *Symbol, SMLoc Loc=SMLoc())
Emit a label for Symbol into the current section.
static const MCSymbolRefExpr * create(const MCSymbol *Symbol, MCContext &Ctx, SMLoc Loc=SMLoc())
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
void setSpecifier(uint32_t S)
const MCSymbol * getSubSym() const
Represent a constant reference to a string, i.e.
bool contains(const_arg_type_t< ValueT > V) const
Check if the set contains the given element.
This class implements an extremely fast bulk output stream that can only output to a stream.
@ C
The default llvm calling convention, compatible with C.
ValuesClass values(OptsTy... Options)
Helper to build a ValuesClass by forwarding a variable number of arguments as an initializer list to ...
initializer< Ty > init(const Ty &Val)
This is an optimization pass for GlobalISel generic memory operations.
decltype(auto) dyn_cast(const From &Val)
dyn_cast<X> - Return the argument parameter cast to the specified type.
cl::opt< cl::boolOrDefault > UseLEB128Directives("use-leb128-directives", cl::Hidden, cl::desc("Disable the usage of LEB128 directives, and generate .byte instead."), cl::init(cl::boolOrDefault::BOU_UNSET))
bool isAlnum(char C)
Checks whether character C is either a decimal digit or an uppercase or lowercase letter as classifie...
@ Default
The result value is uniform if and only if all operands are uniform.