LLVM  8.0.0svn
Classes | Public Types | Public Member Functions | List of all members
llvm::StackMaps Class Reference

#include "llvm/CodeGen/StackMaps.h"

Classes

struct  CallsiteInfo
 
struct  FunctionInfo
 
struct  LiveOutReg
 
struct  Location
 

Public Types

using OpType = enum { DirectMemRefOp, IndirectMemRefOp, ConstantOp }
 
using LocationVec = SmallVector< Location, 8 >
 
using LiveOutVec = SmallVector< LiveOutReg, 8 >
 
using ConstantPool = MapVector< uint64_t, uint64_t >
 
using FnInfoMap = MapVector< const MCSymbol *, FunctionInfo >
 
using CallsiteInfoList = std::vector< CallsiteInfo >
 

Public Member Functions

 StackMaps (AsmPrinter &AP)
 
void reset ()
 
void recordStackMap (const MachineInstr &MI)
 Generate a stackmap record for a stackmap instruction. More...
 
void recordPatchPoint (const MachineInstr &MI)
 Generate a stackmap record for a patchpoint instruction. More...
 
void recordStatepoint (const MachineInstr &MI)
 Generate a stackmap record for a statepoint instruction. More...
 
void serializeToStackMapSection ()
 If there is any stack map data, create a stack map section and serialize the map info into it. More...
 
CallsiteInfoListgetCSInfos ()
 Get call site info. More...
 
FnInfoMapgetFnInfos ()
 Get function info. More...
 

Detailed Description

Definition at line 194 of file StackMaps.h.

Member Typedef Documentation

◆ CallsiteInfoList

Definition at line 265 of file StackMaps.h.

◆ ConstantPool

using llvm::StackMaps::ConstantPool = MapVector<uint64_t, uint64_t>

Definition at line 241 of file StackMaps.h.

◆ FnInfoMap

Definition at line 264 of file StackMaps.h.

◆ LiveOutVec

Definition at line 240 of file StackMaps.h.

◆ LocationVec

Definition at line 239 of file StackMaps.h.

◆ OpType

using llvm::StackMaps::OpType = enum { DirectMemRefOp, IndirectMemRefOp, ConstantOp }

Definition at line 229 of file StackMaps.h.

Constructor & Destructor Documentation

◆ StackMaps()

StackMaps::StackMaps ( AsmPrinter AP)

Definition at line 87 of file StackMaps.cpp.

References llvm_unreachable, and StackMapVersion.

Member Function Documentation

◆ getCSInfos()

CallsiteInfoList& llvm::StackMaps::getCSInfos ( )
inline

Get call site info.

Definition at line 284 of file StackMaps.h.

◆ getFnInfos()

FnInfoMap& llvm::StackMaps::getFnInfos ( )
inline

Get function info.

Definition at line 287 of file StackMaps.h.

References llvm::dbgs(), debug, llvm::BitmaskEnumDetail::Mask(), MI, print(), Reg, and TRI.

◆ recordPatchPoint()

void StackMaps::recordPatchPoint ( const MachineInstr MI)

Generate a stackmap record for a patchpoint instruction.

Definition at line 373 of file StackMaps.cpp.

References assert(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::operands_begin(), llvm::MachineInstr::operands_end(), and llvm::StackMaps::Location::Register.

Referenced by EmitNop(), and EmitNops().

◆ recordStackMap()

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 364 of file StackMaps.cpp.

References assert(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::PatchPointOpers::IDPos, llvm::MachineInstr::operands_begin(), and llvm::MachineInstr::operands_end().

Referenced by EmitNop(), and EmitNops().

◆ recordStatepoint()

void StackMaps::recordStatepoint ( const MachineInstr MI)

◆ reset()

void llvm::StackMaps::reset ( )
inline

◆ serializeToStackMapSection()

void StackMaps::serializeToStackMapSection ( )

The documentation for this class was generated from the following files: