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().