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

#include "llvm/CodeGen/StackMaps.h"

Classes

struct  LiveOutReg
 
struct  Location
 

Public Types

using OpType = enum { DirectMemRefOp, IndirectMemRefOp, ConstantOp }
 

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

Detailed Description

Definition at line 194 of file StackMaps.h.

Member Typedef Documentation

◆ 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

◆ recordPatchPoint()

void StackMaps::recordPatchPoint ( const MachineInstr MI)

Generate a stackmap record for a patchpoint instruction.

Definition at line 374 of file StackMaps.cpp.

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

Referenced by EmitNops(), and stripRegisterPrefix().

◆ 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 365 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 EmitNops(), and stripRegisterPrefix().

◆ 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: