Lines Matching defs:BlockInfo

1145   struct BlockInfo {
1178 const_cast<const BlockInfo *>(this)->getAssignmentMap(Kind));
1223 bool operator==(const BlockInfo &Other) const {
1230 bool operator!=(const BlockInfo &Other) const { return !(*this == Other); }
1259 static BlockInfo join(const BlockInfo &A, const BlockInfo &B, int NumVars) {
1271 // BlockInfo::init initializes all variable entries to the ⊤ value so we
1275 BlockInfo Join;
1300 DenseMap<const BasicBlock *, BlockInfo> LiveIn;
1301 DenseMap<const BasicBlock *, BlockInfo> LiveOut;
1339 BlockInfo joinBlockInfo(const BlockInfo &A, const BlockInfo &B);
1345 void process(BasicBlock &BB, BlockInfo *LiveSet);
1350 void processNonDbgInstruction(Instruction &I, BlockInfo *LiveSet);
1351 void processDbgInstruction(DbgInfoIntrinsic &I, BlockInfo *LiveSet);
1354 void processTaggedInstruction(Instruction &I, BlockInfo *LiveSet);
1357 void processUntaggedInstruction(Instruction &I, BlockInfo *LiveSet);
1358 void processDbgAssign(AssignRecord Assign, BlockInfo *LiveSet);
1359 void processDbgVariableRecord(DbgVariableRecord &DVR, BlockInfo *LiveSet);
1362 BlockInfo *LiveSet);
1364 void addMemDef(BlockInfo *LiveSet, VariableID Var, const Assignment &AV);
1366 void addDbgDef(BlockInfo *LiveSet, VariableID Var, const Assignment &AV);
1370 void setLocKind(BlockInfo *LiveSet, VariableID Var, LocKind K);
1373 LocKind getLocKind(BlockInfo *LiveSet, VariableID Var);
1375 bool hasVarWithAssignment(BlockInfo *LiveSet, BlockInfo::AssignmentKind Kind,
1410 void AssignmentTrackingLowering::setLocKind(BlockInfo *LiveSet, VariableID Var,
1412 auto SetKind = [this](BlockInfo *LiveSet, VariableID Var, LocKind K) {
1424 AssignmentTrackingLowering::getLocKind(BlockInfo *LiveSet, VariableID Var) {
1428 void AssignmentTrackingLowering::addMemDef(BlockInfo *LiveSet, VariableID Var,
1430 LiveSet->setAssignment(BlockInfo::Stack, Var, AV);
1438 LiveSet->setAssignment(BlockInfo::Stack, Frag, FragAV);
1441 void AssignmentTrackingLowering::addDbgDef(BlockInfo *LiveSet, VariableID Var,
1443 LiveSet->setAssignment(BlockInfo::Debug, Var, AV);
1451 LiveSet->setAssignment(BlockInfo::Debug, Frag, FragAV);
1470 BlockInfo *LiveSet, BlockInfo::AssignmentKind Kind, VariableID Var,
1600 Instruction &I, AssignmentTrackingLowering::BlockInfo *LiveSet) {
1608 Instruction &I, AssignmentTrackingLowering::BlockInfo *LiveSet) {
1677 Instruction &I, AssignmentTrackingLowering::BlockInfo *LiveSet) {
1704 if (hasVarWithAssignment(LiveSet, BlockInfo::Debug, Var, AV)) {
1734 Assignment DbgAV = LiveSet->getAssignment(BlockInfo::Debug, Var);
1767 BlockInfo *LiveSet) {
1784 if (hasVarWithAssignment(LiveSet, BlockInfo::Stack, Var, AV)) {
1815 BlockInfo *LiveSet) {
1851 DbgInfoIntrinsic &I, AssignmentTrackingLowering::BlockInfo *LiveSet) {
1866 DbgVariableRecord &DVR, AssignmentTrackingLowering::BlockInfo *LiveSet) {
1891 void AssignmentTrackingLowering::process(BasicBlock &BB, BlockInfo *LiveSet) {
2023 AssignmentTrackingLowering::BlockInfo
2024 AssignmentTrackingLowering::joinBlockInfo(const BlockInfo &A,
2025 const BlockInfo &B) {
2026 return BlockInfo::join(A, B, TrackedVariablesVectorSize);
2047 auto It = LiveIn.try_emplace(&BB, BlockInfo());
2056 const BlockInfo &PredLiveOut = LiveOut.find(VisitedPreds[0])->second;
2072 const BlockInfo &PredLiveOut0 = LiveOut.find(VisitedPreds[0])->second;
2073 const BlockInfo &PredLiveOut1 = LiveOut.find(VisitedPreds[1])->second;
2074 BlockInfo BBLiveIn = joinBlockInfo(PredLiveOut0, PredLiveOut1);
2353 BlockInfo LiveSet = LiveIn[BB];