LLVM  14.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]
Collaboration diagram for LiveDebugValues::InstrRefBasedLDV:
Collaboration graph
[legend]

Public Types

using FragmentInfo = DIExpression::FragmentInfo
 
using OptFragmentInfo = 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. More...
 
using LiveIdxT = DenseMap< const MachineBasicBlock *, DbgValue * >
 Live in/out structure for the variable values: a per-block map of variables to their values. More...
 
using VarAndLoc = std::pair< DebugVariable, DbgValue >
 
using InValueT = std::pair< MachineBasicBlock *, DbgValue * >
 Type for a live-in value: the predecessor block, and its value. More...
 
using LiveInsT = SmallVector< SmallVector< VarAndLoc, 8 >, 8 >
 Vector (per block) of a collection (inner smallvector) of live-ins. More...
 

Public Member Functions

 InstrRefBasedLDV ()
 Default construct and initialize the pass. More...
 
LLVM_DUMP_METHOD void dump_mloc_transfer (const MLocTransferMap &mloc_transfer) const
 
bool isCalleeSaved (LocIdx L) const
 
bool hasFoldedStackStore (const MachineInstr &MI)
 
Optional< LocIdxfindLocationForMemOperand (const MachineInstr &MI)
 

Friends

class ::InstrRefLDVTest
 

Detailed Description

Definition at line 753 of file InstrRefBasedImpl.h.

Member Typedef Documentation

◆ FragmentInfo

Definition at line 757 of file InstrRefBasedImpl.h.

◆ InValueT

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

Definition at line 776 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 771 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 780 of file InstrRefBasedImpl.h.

◆ MLocTransferMap

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

Definition at line 767 of file InstrRefBasedImpl.h.

◆ OptFragmentInfo

Definition at line 758 of file InstrRefBasedImpl.h.

◆ VarAndLoc

Definition at line 773 of file InstrRefBasedImpl.h.

◆ VarToFragments

Definition at line 763 of file InstrRefBasedImpl.h.

Constructor & Destructor Documentation

◆ InstrRefBasedLDV()

InstrRefBasedLDV::InstrRefBasedLDV ( )

Default construct and initialize the pass.

Definition at line 869 of file InstrRefBasedImpl.cpp.

Member Function Documentation

◆ dump_mloc_transfer()

void InstrRefBasedLDV::dump_mloc_transfer ( const MLocTransferMap mloc_transfer) const

◆ findLocationForMemOperand()

Optional< LocIdx > InstrRefBasedLDV::findLocationForMemOperand ( const MachineInstr MI)

◆ hasFoldedStackStore()

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

Definition at line 1049 of file InstrRefBasedImpl.h.

References MI.

◆ isCalleeSaved()

bool InstrRefBasedLDV::isCalleeSaved ( LocIdx  L) const

Friends And Related Function Documentation

◆ ::InstrRefLDVTest

friend class ::InstrRefLDVTest
friend

Definition at line 755 of file InstrRefBasedImpl.h.


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