Lines Matching refs:MFI

274   MachineFrameInfo &MFI = MF.getFrameInfo();
275 uint64_t StackSize = MFI.getStackSize();
290 MFI.setSavePoint(nullptr);
291 MFI.setRestorePoint(nullptr);
301 MachineFrameInfo &MFI = MF.getFrameInfo();
304 bool AdjustsStack = MFI.adjustsStack();
330 assert(!MFI.isMaxCallFrameSizeComputed() ||
331 (MFI.getMaxCallFrameSize() == MaxCallFrameSize &&
332 MFI.adjustsStack() == AdjustsStack));
333 MFI.setAdjustsStack(AdjustsStack);
334 MFI.setMaxCallFrameSize(MaxCallFrameSize);
352 const MachineFrameInfo &MFI = MF.getFrameInfo();
359 if (MFI.getSavePoint()) {
360 SaveBlocks.push_back(MFI.getSavePoint());
361 assert(MFI.getRestorePoint() && "Both restore and save must be set");
362 MachineBasicBlock *RestoreBlock = MFI.getRestorePoint();
399 MachineFrameInfo &MFI = F.getFrameInfo();
444 FrameIdx = MFI.CreateStackObject(Size, Align, true);
449 FrameIdx = MFI.CreateFixedSpillStackObject(Size, FixedSlot->Offset);
456 MFI.setCalleeSavedInfo(CSI);
462 MachineFrameInfo &MFI = MF.getFrameInfo();
473 MachineBasicBlock *Save = MFI.getSavePoint();
484 MachineBasicBlock *Restore = MFI.getRestorePoint();
504 const std::vector<CalleeSavedInfo> &CSI = MFI.getCalleeSavedInfo();
601 MachineFrameInfo &MFI = MF.getFrameInfo();
614 MFI.setCalleeSavedInfoValid(true);
616 std::vector<CalleeSavedInfo> &CSI = MFI.getCalleeSavedInfo();
618 if (!MFI.hasCalls())
635 AdjustStackOffset(MachineFrameInfo &MFI, int FrameIdx,
640 Offset += MFI.getObjectSize(FrameIdx);
642 unsigned Align = MFI.getObjectAlignment(FrameIdx);
654 MFI.setObjectOffset(FrameIdx, -Offset); // Set the computed offset
658 MFI.setObjectOffset(FrameIdx, Offset);
659 Offset += MFI.getObjectSize(FrameIdx);
666 computeFreeStackSlots(MachineFrameInfo &MFI, bool StackGrowsDown,
677 for (int i = MFI.getObjectIndexBegin(); i != 0; ++i)
679 if (MFI.getStackID(i) == TargetStackID::Default)
683 if (MFI.getStackID(i) == TargetStackID::Default)
689 int ObjOffset = MFI.getObjectOffset(i);
690 int ObjSize = MFI.getObjectSize(i);
708 static inline bool scavengeStackSlot(MachineFrameInfo &MFI, int FrameIdx,
711 if (MFI.isVariableSizedObjectIndex(FrameIdx))
721 unsigned ObjAlign = MFI.getObjectAlignment(FrameIdx);
725 int64_t ObjSize = MFI.getObjectSize(FrameIdx);
755 MFI.setObjectOffset(FrameIdx, ObjStart);
759 MFI.setObjectOffset(FrameIdx, FreeStart);
771 MachineFrameInfo &MFI, bool StackGrowsDown,
777 AdjustStackOffset(MFI, i, StackGrowsDown, Offset, MaxAlign, Skew);
791 MachineFrameInfo &MFI = MF.getFrameInfo();
807 for (unsigned i = 0, e = MFI.getObjectIndexEnd(); i != e; ++i)
808 if (!MFI.isDeadObjectIndex(i) &&
809 MFI.getStackID(i) == TargetStackID::Default)
810 assert(MFI.getObjectAlignment(i) <= MFI.getMaxAlignment() &&
818 for (int i = MFI.getObjectIndexBegin(); i != 0; ++i) {
819 if (MFI.getStackID(i) !=
828 FixedOff = -MFI.getObjectOffset(i);
832 FixedOff = MFI.getObjectOffset(i) + MFI.getObjectSize(i);
841 if (MFI.getStackID(i) !=
847 Offset += MFI.getObjectSize(i);
849 unsigned Align = MFI.getObjectAlignment(i);
854 MFI.setObjectOffset(i, -Offset); // Set the computed offset
859 if (MFI.getStackID(i) !=
863 if (MFI.isDeadObjectIndex(i))
866 unsigned Align = MFI.getObjectAlignment(i);
871 MFI.setObjectOffset(i, Offset);
872 Offset += MFI.getObjectSize(i);
879 unsigned MaxAlign = MFI.getMaxAlignment();
894 AdjustStackOffset(MFI, *I, StackGrowsDown, Offset, MaxAlign, Skew);
901 if (MFI.getUseLocalStackAllocationBlock()) {
902 unsigned Align = MFI.getLocalFrameMaxAlign().value();
910 for (unsigned i = 0, e = MFI.getLocalFrameObjectCount(); i != e; ++i) {
911 std::pair<int, int64_t> Entry = MFI.getLocalFrameObjectMap(i);
915 MFI.setObjectOffset(Entry.first, FIOffset);
918 Offset += MFI.getLocalFrameSize();
931 if (MFI.hasStackProtectorIndex()) {
932 int StackProtectorFI = MFI.getStackProtectorIndex();
941 if (!MFI.getUseLocalStackAllocationBlock())
942 AdjustStackOffset(MFI, StackProtectorFI, StackGrowsDown, Offset, MaxAlign,
944 else if (!MFI.isObjectPreAllocated(MFI.getStackProtectorIndex()))
949 for (unsigned i = 0, e = MFI.getObjectIndexEnd(); i != e; ++i) {
950 if (MFI.isObjectPreAllocated(i) && MFI.getUseLocalStackAllocationBlock())
956 if (MFI.isDeadObjectIndex(i))
960 if (MFI.getStackID(i) !=
964 switch (MFI.getObjectSSPLayout(i)) {
983 if (MFI.getUseLocalStackAllocationBlock() &&
989 AssignProtectedObjSet(LargeArrayObjs, ProtectedObjs, MFI, StackGrowsDown,
991 AssignProtectedObjSet(SmallArrayObjs, ProtectedObjs, MFI, StackGrowsDown,
993 AssignProtectedObjSet(AddrOfObjs, ProtectedObjs, MFI, StackGrowsDown,
1001 for (unsigned i = 0, e = MFI.getObjectIndexEnd(); i != e; ++i) {
1002 if (MFI.isObjectPreAllocated(i) && MFI.getUseLocalStackAllocationBlock())
1008 if (MFI.isDeadObjectIndex(i))
1010 if (MFI.getStackProtectorIndex() == (int)i || EHRegNodeFrameIndex == (int)i)
1014 if (MFI.getStackID(i) !=
1024 AdjustStackOffset(MFI, EHRegNodeFrameIndex, StackGrowsDown, Offset,
1039 MFI.getStackProtectorIndex() < 0 && TFI.enableStackSlotScavenging(MF))
1040 computeFreeStackSlots(MFI, StackGrowsDown, MinCSFrameIndex, MaxCSFrameIndex,
1045 if (!scavengeStackSlot(MFI, Object, StackGrowsDown, MaxAlign,
1047 AdjustStackOffset(MFI, Object, StackGrowsDown, Offset, MaxAlign, Skew);
1056 AdjustStackOffset(MFI, *I, StackGrowsDown, Offset, MaxAlign, Skew);
1063 if (MFI.adjustsStack() && TFI.hasReservedCallFrame(MF))
1064 Offset += MFI.getMaxCallFrameSize();
1072 if (MFI.adjustsStack() || MFI.hasVarSizedObjects() ||
1073 (RegInfo->needsStackRealignment(MF) && MFI.getObjectIndexEnd() != 0))
1086 MFI.setStackSize(StackSize);