LLVM 22.0.0git
|
#include "CodeGen/LiveDebugValues/InstrRefBasedImpl.h"
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< LocIdx > | findLocationForMemOperand (const MachineInstr &MI) |
DebugVariableMap & | getDVMap () |
Friends | |
class | ::InstrRefLDVTest |
Definition at line 1116 of file InstrRefBasedImpl.h.
Definition at line 1120 of file InstrRefBasedImpl.h.
using LiveDebugValues::InstrRefBasedLDV::InValueT = std::pair<MachineBasicBlock *, DbgValue *> |
Type for a live-in value: the predecessor block, and its value.
Definition at line 1139 of file InstrRefBasedImpl.h.
using LiveDebugValues::InstrRefBasedLDV::LiveIdxT = SmallDenseMap<const MachineBasicBlock *, DbgValue *, 16> |
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.
using LiveDebugValues::InstrRefBasedLDV::LiveInsT = SmallVector<SmallVector<VarAndLoc, 8>, 8> |
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.
Machine location/value transfer function, a mapping of which locations are assigned which new values.
Definition at line 1130 of file InstrRefBasedImpl.h.
using LiveDebugValues::InstrRefBasedLDV::OptFragmentInfo = std::optional<DIExpression::FragmentInfo> |
Definition at line 1121 of file InstrRefBasedImpl.h.
using LiveDebugValues::InstrRefBasedLDV::ScopeToAssignBlocksT = DenseMap<const LexicalScope *, SmallPtrSet<MachineBasicBlock *, 4>> |
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.
using LiveDebugValues::InstrRefBasedLDV::ScopeToDILocT = DenseMap<const LexicalScope *, const DILocation *> |
Mapping from lexical scopes to a DILocation in that scope.
Definition at line 1146 of file InstrRefBasedImpl.h.
Mapping from lexical scopes to variables in that scope.
Definition at line 1149 of file InstrRefBasedImpl.h.
using LiveDebugValues::InstrRefBasedLDV::VarAndLoc = std::pair<DebugVariableID, DbgValue> |
Definition at line 1136 of file InstrRefBasedImpl.h.
Definition at line 1125 of file InstrRefBasedImpl.h.
|
default |
Default construct and initialize the pass.
References LLVM_ABI_FOR_TEST, and LLVM_DUMP_METHOD.
void InstrRefBasedLDV::dump_mloc_transfer | ( | const MLocTransferMap & | mloc_transfer | ) | const |
Definition at line 3444 of file InstrRefBasedImpl.cpp.
References llvm::dbgs(), and P.
std::optional< LocIdx > InstrRefBasedLDV::findLocationForMemOperand | ( | const MachineInstr & | MI | ) |
Definition at line 1414 of file InstrRefBasedImpl.cpp.
References assert(), llvm::LocationSize::getValue(), llvm::LocationSize::hasValue(), and MI.
|
inline |
Definition at line 1522 of file InstrRefBasedImpl.h.
|
inline |
Definition at line 1506 of file InstrRefBasedImpl.h.
References llvm::PseudoSourceValue::FixedStack, and MI.
Definition at line 1378 of file InstrRefBasedImpl.cpp.
References isCalleeSavedReg().
Definition at line 1382 of file InstrRefBasedImpl.cpp.
References llvm::MCRegAliasIterator::isValid().
Referenced by isCalleeSaved().
|
friend |
Definition at line 1118 of file InstrRefBasedImpl.h.