LLVM 19.0.0git
Classes | Public Types | Public Member Functions | Friends | List of all members
LiveDebugValues::InstrRefBasedLDV Class Reference

#include "CodeGen/LiveDebugValues/InstrRefBasedImpl.h"

Inheritance diagram for LiveDebugValues::InstrRefBasedLDV:
Inheritance graph
[legend]

Public Types

using FragmentInfo = DIExpression::FragmentInfo
 
using OptFragmentInfo = std::optional< DIExpression::FragmentInfo >
 
using VarToFragments = DenseMap< const DILocalVariable *, SmallSet< FragmentInfo, 4 > >
 
using MLocTransferMap = SmallDenseMap< LocIdx, ValueIDNum >
 Machine location/value transfer function, a mapping of which locations are assigned which new values.
 
using LiveIdxT = DenseMap< const MachineBasicBlock *, DbgValue * >
 Live in/out structure for the variable values: a per-block map of variables to their values.
 
using VarAndLoc = std::pair< DebugVariable, 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 = DenseMap< const LexicalScope *, SmallSet< DebugVariable, 4 > >
 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

 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)
 

Friends

class ::InstrRefLDVTest
 

Detailed Description

Definition at line 1076 of file InstrRefBasedImpl.h.

Member Typedef Documentation

◆ FragmentInfo

Definition at line 1080 of file InstrRefBasedImpl.h.

◆ InValueT

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

Definition at line 1099 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 1094 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 1103 of file InstrRefBasedImpl.h.

◆ MLocTransferMap

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

Definition at line 1090 of file InstrRefBasedImpl.h.

◆ OptFragmentInfo

Definition at line 1081 of file InstrRefBasedImpl.h.

◆ 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 1114 of file InstrRefBasedImpl.h.

◆ ScopeToDILocT

Mapping from lexical scopes to a DILocation in that scope.

Definition at line 1106 of file InstrRefBasedImpl.h.

◆ ScopeToVarsT

Mapping from lexical scopes to variables in that scope.

Definition at line 1109 of file InstrRefBasedImpl.h.

◆ VarAndLoc

Definition at line 1096 of file InstrRefBasedImpl.h.

◆ VarToFragments

Definition at line 1085 of file InstrRefBasedImpl.h.

Constructor & Destructor Documentation

◆ InstrRefBasedLDV()

InstrRefBasedLDV::InstrRefBasedLDV ( )
default

Default construct and initialize the pass.

Member Function Documentation

◆ dump_mloc_transfer()

void InstrRefBasedLDV::dump_mloc_transfer ( const MLocTransferMap mloc_transfer) const

◆ findLocationForMemOperand()

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

◆ hasFoldedStackStore()

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

Definition at line 1462 of file InstrRefBasedImpl.h.

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

◆ isCalleeSaved()

bool InstrRefBasedLDV::isCalleeSaved ( LocIdx  L) const

◆ isCalleeSavedReg()

bool InstrRefBasedLDV::isCalleeSavedReg ( Register  R) const

Definition at line 1317 of file InstrRefBasedImpl.cpp.

References llvm::MCRegAliasIterator::isValid(), and llvm::BitVector::test().

Referenced by isCalleeSaved().

Friends And Related Function Documentation

◆ ::InstrRefLDVTest

friend class ::InstrRefLDVTest
friend

Definition at line 1078 of file InstrRefBasedImpl.h.


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