31 cl::desc(
"Disable emission of the extended flags in .loc directives."),
40 "Disable the usage of LEB128 directives, and generate .byte instead."),
73 MCSymbol *PCSym = Context.createTempSymbol();
83 return isAlnum(
C) ||
C ==
'_' ||
C ==
'$' ||
C ==
'.';
109 for (
auto Desc : Descs) {
110 [[maybe_unused]]
auto It =
112 assert(It.second &&
"duplicate Kind");
113 [[maybe_unused]]
auto It2 =
122 "ensure the specifier is set in initializeVariantKinds");
137 Expr.print(OS,
this);
143 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))
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
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::StringMap< uint32_t > NameToAtSpecifier
void initializeAtSpecifiers(ArrayRef< AtSpecifier >)
llvm::DenseMap< uint32_t, StringRef > AtSpecifierToName
virtual bool evaluateAsRelocatableImpl(const MCSpecifierExpr &, MCValue &Res, const MCAssembler *Asm) const
bool doesAllowAtInName() const
StringRef getSpecifierName(uint32_t S) const
std::optional< uint32_t > getSpecifierForName(StringRef Name) const
void printExpr(raw_ostream &, const MCExpr &) const
virtual const MCExpr * getExprForFDESymbol(const MCSymbol *Sym, unsigned Encoding, MCStreamer &Streamer) const
virtual 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.
bool usesELFSectionDirectiveForBSS() const
bool SupportsExtendedDwarfLocDirective
True if the target supports flags in ".loc" directive, false if only location is allowed.
virtual const MCExpr * getExprForPersonalitySymbol(const MCSymbol *Sym, unsigned Encoding, MCStreamer &Streamer) const
bool HasLEB128Directives
True if the target supports LEB128 directives.
virtual 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,...
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
StringRef - Represent a constant reference to a string, i.e.
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.
bool isAlnum(char C)
Checks whether character C is either a decimal digit or an uppercase or lowercase letter as classifie...
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::BOU_UNSET))
@ Default
The result values are uniform if and only if all operands are uniform.