LLVM  15.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...
 
using ScopeToDILocT = DenseMap< const LexicalScope *, const DILocation * >
 Mapping from lexical scopes to a DILocation in that scope. More...
 
using ScopeToVarsT = DenseMap< const LexicalScope *, SmallSet< DebugVariable, 4 > >
 Mapping from lexical scopes to variables in that scope. More...
 
using ScopeToAssignBlocksT = DenseMap< const LexicalScope *, SmallPtrSet< MachineBasicBlock *, 4 > >
 Mapping from lexical scopes to blocks where variables in that scope are assigned. 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 777 of file InstrRefBasedImpl.h.

Member Typedef Documentation

◆ FragmentInfo

Definition at line 781 of file InstrRefBasedImpl.h.

◆ InValueT

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

Definition at line 800 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 795 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 804 of file InstrRefBasedImpl.h.

◆ MLocTransferMap

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

Definition at line 791 of file InstrRefBasedImpl.h.

◆ OptFragmentInfo

Definition at line 782 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 815 of file InstrRefBasedImpl.h.

◆ ScopeToDILocT

Mapping from lexical scopes to a DILocation in that scope.

Definition at line 807 of file InstrRefBasedImpl.h.

◆ ScopeToVarsT

Mapping from lexical scopes to variables in that scope.

Definition at line 810 of file InstrRefBasedImpl.h.

◆ VarAndLoc

Definition at line 797 of file InstrRefBasedImpl.h.

◆ VarToFragments

Definition at line 787 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()

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

◆ hasFoldedStackStore()

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

Definition at line 1142 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 779 of file InstrRefBasedImpl.h.


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