LLVM 22.0.0git
LiveDebugValues::InstrRefBasedLDV Class Reference

#include "CodeGen/LiveDebugValues/InstrRefBasedImpl.h"

Inheritance diagram for LiveDebugValues::InstrRefBasedLDV:
[legend]

Public Types

using FragmentInfo = DIExpression::FragmentInfo
using OptFragmentInfo = std::optional<DIExpression::FragmentInfo>
using VarToFragments
using MLocTransferMap = SmallDenseMap<LocIdx, ValueIDNum>
 Machine location/value transfer function, a mapping of which locations are assigned which new values.
using LiveIdxT = SmallDenseMap<const MachineBasicBlock *, DbgValue *, 16>
 Live in/out structure for the variable values: a per-block map of variables to their values.
using VarAndLoc = std::pair<DebugVariableID, DbgValue>
using InValueT = std::pair<MachineBasicBlock *, DbgValue *>
 Type for a live-in value: the predecessor block, and its value.
using LiveInsT = SmallVector<SmallVector<VarAndLoc, 8>, 8>
 Vector (per block) of a collection (inner smallvector) of live-ins.
using ScopeToDILocT = DenseMap<const LexicalScope *, const DILocation *>
 Mapping from lexical scopes to a DILocation in that scope.
using ScopeToVarsT
 Mapping from lexical scopes to variables in that scope.
using ScopeToAssignBlocksT = DenseMap<const LexicalScope *, SmallPtrSet<MachineBasicBlock *, 4>>
 Mapping from lexical scopes to blocks where variables in that scope are assigned.

Public Member Functions

LLVM_ABI_FOR_TEST InstrRefBasedLDV ()
 Default construct and initialize the pass.
LLVM_DUMP_METHOD void dump_mloc_transfer (const MLocTransferMap &mloc_transfer) const
bool isCalleeSaved (LocIdx L) const
bool isCalleeSavedReg (Register R) const
bool hasFoldedStackStore (const MachineInstr &MI)
std::optional< LocIdxfindLocationForMemOperand (const MachineInstr &MI)
DebugVariableMapgetDVMap ()

Friends

class ::InstrRefLDVTest

Detailed Description

Definition at line 1116 of file InstrRefBasedImpl.h.

Member Typedef Documentation

◆ FragmentInfo

◆ InValueT

Type for a live-in value: the predecessor block, and its value.

Definition at line 1139 of file InstrRefBasedImpl.h.

◆ LiveIdxT

Live in/out structure for the variable values: a per-block map of variables to their values.

Definition at line 1134 of file InstrRefBasedImpl.h.

◆ LiveInsT

Vector (per block) of a collection (inner smallvector) of live-ins.

Used as the result type for the variable value dataflow problem.

Definition at line 1143 of file InstrRefBasedImpl.h.

◆ MLocTransferMap

Machine location/value transfer function, a mapping of which locations are assigned which new values.

Definition at line 1130 of file InstrRefBasedImpl.h.

◆ OptFragmentInfo

◆ ScopeToAssignBlocksT

Mapping from lexical scopes to blocks where variables in that scope are assigned.

Such blocks aren't necessarily "in" the lexical scope, it's just a block where an assignment happens.

Definition at line 1155 of file InstrRefBasedImpl.h.

◆ ScopeToDILocT

Mapping from lexical scopes to a DILocation in that scope.

Definition at line 1146 of file InstrRefBasedImpl.h.

◆ ScopeToVarsT

Initial value:

Mapping from lexical scopes to variables in that scope.

Definition at line 1149 of file InstrRefBasedImpl.h.

◆ VarAndLoc

◆ VarToFragments

Constructor & Destructor Documentation

◆ InstrRefBasedLDV()

InstrRefBasedLDV::InstrRefBasedLDV ( )
default

Default construct and initialize the pass.

References LLVM_ABI_FOR_TEST, and LLVM_DUMP_METHOD.

Member Function Documentation

◆ dump_mloc_transfer()

void InstrRefBasedLDV::dump_mloc_transfer ( const MLocTransferMap & mloc_transfer) const

Definition at line 3444 of file InstrRefBasedImpl.cpp.

References llvm::dbgs(), and P.

◆ findLocationForMemOperand()

std::optional< LocIdx > InstrRefBasedLDV::findLocationForMemOperand ( const MachineInstr & MI)

◆ getDVMap()

DebugVariableMap & LiveDebugValues::InstrRefBasedLDV::getDVMap ( )
inline

Definition at line 1522 of file InstrRefBasedImpl.h.

◆ hasFoldedStackStore()

bool LiveDebugValues::InstrRefBasedLDV::hasFoldedStackStore ( const MachineInstr & MI)
inline

Definition at line 1506 of file InstrRefBasedImpl.h.

References llvm::PseudoSourceValue::FixedStack, and MI.

◆ isCalleeSaved()

bool InstrRefBasedLDV::isCalleeSaved ( LocIdx L) const

Definition at line 1378 of file InstrRefBasedImpl.cpp.

References isCalleeSavedReg().

◆ isCalleeSavedReg()

bool InstrRefBasedLDV::isCalleeSavedReg ( Register R) const

Definition at line 1382 of file InstrRefBasedImpl.cpp.

References llvm::MCRegAliasIterator::isValid().

Referenced by isCalleeSaved().

◆ ::InstrRefLDVTest

friend class ::InstrRefLDVTest
friend

Definition at line 1118 of file InstrRefBasedImpl.h.


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