• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/CodeGen/

Lines Matching refs:MFI

278   MachineFrameInfo &MFI = MF.getFrameInfo();
279 uint64_t StackSize = MFI.getStackSize();
294 MFI.setSavePoint(nullptr);
295 MFI.setRestorePoint(nullptr);
305 MachineFrameInfo &MFI = MF.getFrameInfo();
308 bool AdjustsStack = MFI.adjustsStack();
334 assert(!MFI.isMaxCallFrameSizeComputed() ||
335 (MFI.getMaxCallFrameSize() == MaxCallFrameSize &&
336 MFI.adjustsStack() == AdjustsStack));
337 MFI.setAdjustsStack(AdjustsStack);
338 MFI.setMaxCallFrameSize(MaxCallFrameSize);
356 const MachineFrameInfo &MFI = MF.getFrameInfo();
363 if (MFI.getSavePoint()) {
364 SaveBlocks.push_back(MFI.getSavePoint());
365 assert(MFI.getRestorePoint() && "Both restore and save must be set");
366 MachineBasicBlock *RestoreBlock = MFI.getRestorePoint();
403 MachineFrameInfo &MFI = F.getFrameInfo();
446 FrameIdx = MFI.CreateStackObject(Size, Alignment, true);
451 FrameIdx = MFI.CreateFixedSpillStackObject(Size, FixedSlot->Offset);
458 MFI.setCalleeSavedInfo(CSI);
464 MachineFrameInfo &MFI = MF.getFrameInfo();
475 MachineBasicBlock *Save = MFI.getSavePoint();
486 MachineBasicBlock *Restore = MFI.getRestorePoint();
506 const std::vector<CalleeSavedInfo> &CSI = MFI.getCalleeSavedInfo();
603 MachineFrameInfo &MFI = MF.getFrameInfo();
616 MFI.setCalleeSavedInfoValid(true);
618 std::vector<CalleeSavedInfo> &CSI = MFI.getCalleeSavedInfo();
620 if (!MFI.hasCalls())
636 static inline void AdjustStackOffset(MachineFrameInfo &MFI, int FrameIdx,
641 Offset += MFI.getObjectSize(FrameIdx);
643 Align Alignment = MFI.getObjectAlign(FrameIdx);
655 MFI.setObjectOffset(FrameIdx, -Offset); // Set the computed offset
659 MFI.setObjectOffset(FrameIdx, Offset);
660 Offset += MFI.getObjectSize(FrameIdx);
667 computeFreeStackSlots(MachineFrameInfo &MFI, bool StackGrowsDown,
678 for (int i = MFI.getObjectIndexBegin(); i != 0; ++i)
680 if (MFI.getStackID(i) == TargetStackID::Default)
684 if (MFI.getStackID(i) == TargetStackID::Default)
690 int ObjOffset = MFI.getObjectOffset(i);
691 int ObjSize = MFI.getObjectSize(i);
709 static inline bool scavengeStackSlot(MachineFrameInfo &MFI, int FrameIdx,
712 if (MFI.isVariableSizedObjectIndex(FrameIdx))
722 Align ObjAlign = MFI.getObjectAlign(FrameIdx);
726 int64_t ObjSize = MFI.getObjectSize(FrameIdx);
756 MFI.setObjectOffset(FrameIdx, ObjStart);
760 MFI.setObjectOffset(FrameIdx, FreeStart);
771 MachineFrameInfo &MFI, bool StackGrowsDown,
778 AdjustStackOffset(MFI, i, StackGrowsDown, Offset, MaxAlign, Skew);
792 MachineFrameInfo &MFI = MF.getFrameInfo();
808 for (unsigned i = 0, e = MFI.getObjectIndexEnd(); i != e; ++i)
809 if (!MFI.isDeadObjectIndex(i) &&
810 MFI.getStackID(i) == TargetStackID::Default)
811 assert(MFI.getObjectAlign(i) <= MFI.getMaxAlign() &&
819 for (int i = MFI.getObjectIndexBegin(); i != 0; ++i) {
820 if (MFI.getStackID(i) !=
829 FixedOff = -MFI.getObjectOffset(i);
833 FixedOff = MFI.getObjectOffset(i) + MFI.getObjectSize(i);
842 if (MFI.getStackID(i) !=
848 Offset += MFI.getObjectSize(i);
851 Offset = alignTo(Offset, MFI.getObjectAlign(i), Skew);
854 MFI.setObjectOffset(i, -Offset); // Set the computed offset
859 if (MFI.getStackID(i) !=
863 if (MFI.isDeadObjectIndex(i))
867 Offset = alignTo(Offset, MFI.getObjectAlign(i), Skew);
870 MFI.setObjectOffset(i, Offset);
871 Offset += MFI.getObjectSize(i);
878 Align MaxAlign = MFI.getMaxAlign();
893 AdjustStackOffset(MFI, *I, StackGrowsDown, Offset, MaxAlign, Skew);
900 if (MFI.getUseLocalStackAllocationBlock()) {
901 Align Alignment = MFI.getLocalFrameMaxAlign();
909 for (unsigned i = 0, e = MFI.getLocalFrameObjectCount(); i != e; ++i) {
910 std::pair<int, int64_t> Entry = MFI.getLocalFrameObjectMap(i);
914 MFI.setObjectOffset(Entry.first, FIOffset);
917 Offset += MFI.getLocalFrameSize();
930 if (MFI.hasStackProtectorIndex()) {
931 int StackProtectorFI = MFI.getStackProtectorIndex();
940 if (!MFI.getUseLocalStackAllocationBlock())
941 AdjustStackOffset(MFI, StackProtectorFI, StackGrowsDown, Offset, MaxAlign,
943 else if (!MFI.isObjectPreAllocated(MFI.getStackProtectorIndex()))
948 for (unsigned i = 0, e = MFI.getObjectIndexEnd(); i != e; ++i) {
949 if (MFI.isObjectPreAllocated(i) && MFI.getUseLocalStackAllocationBlock())
955 if (MFI.isDeadObjectIndex(i))
959 if (MFI.getStackID(i) !=
963 switch (MFI.getObjectSSPLayout(i)) {
982 if (MFI.getUseLocalStackAllocationBlock() &&
988 AssignProtectedObjSet(LargeArrayObjs, ProtectedObjs, MFI, StackGrowsDown,
990 AssignProtectedObjSet(SmallArrayObjs, ProtectedObjs, MFI, StackGrowsDown,
992 AssignProtectedObjSet(AddrOfObjs, ProtectedObjs, MFI, StackGrowsDown,
1000 for (unsigned i = 0, e = MFI.getObjectIndexEnd(); i != e; ++i) {
1001 if (MFI.isObjectPreAllocated(i) && MFI.getUseLocalStackAllocationBlock())
1007 if (MFI.isDeadObjectIndex(i))
1009 if (MFI.getStackProtectorIndex() == (int)i || EHRegNodeFrameIndex == (int)i)
1013 if (MFI.getStackID(i) !=
1023 AdjustStackOffset(MFI, EHRegNodeFrameIndex, StackGrowsDown, Offset,
1038 MFI.getStackProtectorIndex() < 0 && TFI.enableStackSlotScavenging(MF))
1039 computeFreeStackSlots(MFI, StackGrowsDown, MinCSFrameIndex, MaxCSFrameIndex,
1044 if (!scavengeStackSlot(MFI, Object, StackGrowsDown, MaxAlign,
1046 AdjustStackOffset(MFI, Object, StackGrowsDown, Offset, MaxAlign, Skew);
1055 AdjustStackOffset(MFI, *I, StackGrowsDown, Offset, MaxAlign, Skew);
1062 if (MFI.adjustsStack() && TFI.hasReservedCallFrame(MF))
1063 Offset += MFI.getMaxCallFrameSize();
1071 if (MFI.adjustsStack() || MFI.hasVarSizedObjects() ||
1072 (RegInfo->needsStackRealignment(MF) && MFI.getObjectIndexEnd() != 0))
1085 MFI.setStackSize(StackSize);