LLVM API Documentation
#include <StackMaps.h>
Classes | |
struct | CallsiteInfo |
struct | LiveOutReg |
struct | Location |
Public Types | |
enum | OpType { DirectMemRefOp, IndirectMemRefOp, ConstantOp } |
Public Member Functions | |
StackMaps (AsmPrinter &AP) | |
void | reset () |
void | recordStackMap (const MachineInstr &MI) |
Generate a stackmap record for a stackmap instruction. | |
void | recordPatchPoint (const MachineInstr &MI) |
Generate a stackmap record for a patchpoint instruction. | |
void | serializeToStackMapSection () |
Serialize the stackmap data. |
Definition at line 84 of file StackMaps.h.
Definition at line 117 of file StackMaps.h.
StackMaps::StackMaps | ( | AsmPrinter & | AP | ) |
Definition at line 74 of file StackMaps.cpp.
References llvm_unreachable, and StackMapVersion.
void StackMaps::recordPatchPoint | ( | const MachineInstr & | MI | ) |
Generate a stackmap record for a patchpoint instruction.
Definition at line 257 of file StackMaps.cpp.
References llvm::MachineInstr::getOpcode(), llvm::PatchPointOpers::IDPos, llvm::PatchPointOpers::NArgPos, llvm::MachineInstr::operands_begin(), llvm::MachineInstr::operands_end(), llvm::TargetOpcode::PATCHPOINT, and llvm::StackMaps::Location::Register.
void StackMaps::recordStackMap | ( | const MachineInstr & | MI | ) |
Generate a stackmap record for a stackmap instruction.
MI must be a raw STACKMAP, not a PATCHPOINT.
Definition at line 249 of file StackMaps.cpp.
References llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::operands_begin(), llvm::MachineInstr::operands_end(), and llvm::TargetOpcode::STACKMAP.
void llvm::StackMaps::reset | ( | ) | [inline] |
Definition at line 121 of file StackMaps.h.
References llvm::MapVector< KeyT, ValueT, MapType, VectorType >::clear().
Serialize the stackmap data.
If there is any stack map data, create a stack map section and serialize the map info into it. This clears the stack map data structures afterwards.
Definition at line 482 of file StackMaps.cpp.
References llvm::MCStreamer::AddBlankLine(), llvm::dbgs(), DEBUG, llvm::MCStreamer::EmitLabel(), llvm::MCStreamer::getContext(), llvm::MCContext::getObjectFileInfo(), llvm::MCContext::GetOrCreateSymbol(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::MCObjectFileInfo::getStackMapSection(), llvm::TargetMachine::getSubtargetImpl(), llvm::AsmPrinter::OutStreamer, llvm::MCStreamer::SwitchSection(), and llvm::AsmPrinter::TM.
Referenced by llvm::X86AsmPrinter::EmitEndOfAsmFile().