Lines Matching refs:MBBInfo
113 void calculateOutgoingCFAInfo(MBBCFAInfo &MBBInfo);
116 void updateSuccCFAInfo(MBBCFAInfo &MBBInfo);
160 MBBCFAInfo MBBInfo; in calculateCFAInfo() local
161 MBBInfo.MBB = &MBB; in calculateCFAInfo()
162 MBBInfo.IncomingCFAOffset = InitialOffset; in calculateCFAInfo()
163 MBBInfo.OutgoingCFAOffset = InitialOffset; in calculateCFAInfo()
164 MBBInfo.IncomingCFARegister = InitialRegister; in calculateCFAInfo()
165 MBBInfo.OutgoingCFARegister = InitialRegister; in calculateCFAInfo()
166 MBBInfo.IncomingCSRSaved.resize(NumRegs); in calculateCFAInfo()
167 MBBInfo.OutgoingCSRSaved.resize(NumRegs); in calculateCFAInfo()
168 MBBVector[MBB.getNumber()] = MBBInfo; in calculateCFAInfo()
179 void CFIInstrInserter::calculateOutgoingCFAInfo(MBBCFAInfo &MBBInfo) { in calculateOutgoingCFAInfo() argument
181 int SetOffset = MBBInfo.IncomingCFAOffset; in calculateOutgoingCFAInfo()
183 unsigned SetRegister = MBBInfo.IncomingCFARegister; in calculateOutgoingCFAInfo()
184 MachineFunction *MF = MBBInfo.MBB->getParent(); in calculateOutgoingCFAInfo()
191 for (MachineInstr &MI : *MBBInfo.MBB) { in calculateOutgoingCFAInfo()
261 MBBInfo.Processed = true; in calculateOutgoingCFAInfo()
264 MBBInfo.OutgoingCFAOffset = SetOffset; in calculateOutgoingCFAInfo()
265 MBBInfo.OutgoingCFARegister = SetRegister; in calculateOutgoingCFAInfo()
268 MBBInfo.OutgoingCSRSaved = MBBInfo.IncomingCSRSaved; in calculateOutgoingCFAInfo()
269 MBBInfo.OutgoingCSRSaved |= CSRSaved; in calculateOutgoingCFAInfo()
270 MBBInfo.OutgoingCSRSaved.reset(CSRRestored); in calculateOutgoingCFAInfo()
273 void CFIInstrInserter::updateSuccCFAInfo(MBBCFAInfo &MBBInfo) { in updateSuccCFAInfo() argument
275 Stack.push_back(MBBInfo.MBB); in updateSuccCFAInfo()
302 const MBBCFAInfo &MBBInfo = MBBVector[MBB.getNumber()]; in insertCFIInstrs() local
303 auto MBBI = MBBInfo.MBB->begin(); in insertCFIInstrs()
304 DebugLoc DL = MBBInfo.MBB->findDebugLoc(MBBI); in insertCFIInstrs()
310 if ((PrevMBBInfo->OutgoingCFAOffset != MBBInfo.IncomingCFAOffset && in insertCFIInstrs()
311 PrevMBBInfo->OutgoingCFARegister != MBBInfo.IncomingCFARegister) || in insertCFIInstrs()
318 nullptr, MBBInfo.IncomingCFARegister, getCorrectCFAOffset(&MBB))); in insertCFIInstrs()
319 BuildMI(*MBBInfo.MBB, MBBI, DL, TII->get(TargetOpcode::CFI_INSTRUCTION)) in insertCFIInstrs()
322 } else if (PrevMBBInfo->OutgoingCFAOffset != MBBInfo.IncomingCFAOffset) { in insertCFIInstrs()
328 BuildMI(*MBBInfo.MBB, MBBI, DL, TII->get(TargetOpcode::CFI_INSTRUCTION)) in insertCFIInstrs()
332 MBBInfo.IncomingCFARegister) { in insertCFIInstrs()
335 nullptr, MBBInfo.IncomingCFARegister)); in insertCFIInstrs()
336 BuildMI(*MBBInfo.MBB, MBBI, DL, TII->get(TargetOpcode::CFI_INSTRUCTION)) in insertCFIInstrs()
343 *MBBInfo.MBB, MBBI); in insertCFIInstrs()
345 PrevMBBInfo = &MBBInfo; in insertCFIInstrs()
350 SetDifference.reset(MBBInfo.IncomingCSRSaved); in insertCFIInstrs()
354 BuildMI(*MBBInfo.MBB, MBBI, DL, TII->get(TargetOpcode::CFI_INSTRUCTION)) in insertCFIInstrs()
359 SetDifference = MBBInfo.IncomingCSRSaved; in insertCFIInstrs()
375 BuildMI(*MBBInfo.MBB, MBBI, DL, TII->get(TargetOpcode::CFI_INSTRUCTION)) in insertCFIInstrs()
380 PrevMBBInfo = &MBBInfo; in insertCFIInstrs()