34 OS <<
"reg" << RegNum;
41 unsigned OperandIdx,
uint64_t Operand,
42 std::optional<uint64_t> &Address) {
49 OS <<
" Unsupported " << (OperandIdx ?
"second" :
"first") <<
" operand to";
50 auto OpcodeName =
P.callFrameString(Opcode);
51 if (!OpcodeName.empty())
52 OS <<
" " << OpcodeName;
67 OS <<
format(
" %+" PRId64, int64_t(Operand));
71 OS <<
format(
" %" PRId64, Operand *
P.codeAlign());
73 OS <<
format(
" %" PRId64
"*code_alignment_factor", Operand);
81 OS <<
format(
" %" PRId64, int64_t(Operand) *
P.dataAlign());
83 OS <<
format(
" %" PRId64
"*data_alignment_factor", int64_t(Operand));
87 OS <<
format(
" %" PRId64, Operand *
P.dataAlign());
89 OS <<
format(
" %" PRId64
"*data_alignment_factor", Operand);
96 OS <<
format(
" in addrspace%" PRId64, Operand);
99 assert(Instr.Expression &&
"missing DWARFExpression object");
108 unsigned IndentLevel,
109 std::optional<uint64_t> Address) {
110 for (
const auto &Instr :
P) {
113 OS <<
P.callFrameString(Opcode) <<
":";
114 for (
size_t i = 0; i < Instr.Ops.size(); ++i)
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
static void printOperand(raw_ostream &OS, const DIDumpOptions &DumpOpts, const CFIProgram &P, const CFIProgram::Instruction &Instr, unsigned OperandIdx, uint64_t Operand, std::optional< uint64_t > &Address)
Print Opcode's operand number OperandIdx which has value Operand.
static void printRegister(raw_ostream &OS, const DIDumpOptions &DumpOpts, unsigned RegNum)
The instances of the Type class are immutable: once they are created, they are never changed.
Represent a sequence of Call Frame Information instructions that, when read in order,...
OperandType
Types of operands to CFI instructions In DWARF, this type is implicitly tied to a CFI instruction opc...
@ OT_SignedFactDataOffset
@ OT_UnsignedFactDataOffset
static constexpr size_t MaxOperands
This class implements an extremely fast bulk output stream that can only output to a stream.
raw_ostream & indent(unsigned NumSpaces)
indent - Insert 'NumSpaces' spaces.
LLVM_ABI void printCFIProgram(const CFIProgram &P, raw_ostream &OS, const DIDumpOptions &DumpOpts, unsigned IndentLevel, std::optional< uint64_t > Address)
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI void printDwarfExpression(const DWARFExpression *E, raw_ostream &OS, DIDumpOptions DumpOpts, DWARFUnit *U, bool IsEH=false)
Print a Dwarf expression/.
format_object< Ts... > format(const char *Fmt, const Ts &... Vals)
These are helper functions used to produce formatted output.
Container for dump options that control which debug information will be dumped.
std::function< llvm::StringRef(uint64_t DwarfRegNum, bool IsEH)> GetNameForDWARFReg
An instruction consists of a DWARF CFI opcode and an optional sequence of operands.