diff --git a/llvm/include/llvm/CodeGen/MIRYamlMapping.h b/llvm/include/llvm/CodeGen/MIRYamlMapping.h index 09a6ca936fe1f..d4dc53fc0ed32 100644 --- a/llvm/include/llvm/CodeGen/MIRYamlMapping.h +++ b/llvm/include/llvm/CodeGen/MIRYamlMapping.h @@ -610,6 +610,24 @@ LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::yaml::MachineJumpTable::Entry) namespace llvm { namespace yaml { +struct SRPEntry { + StringValue Point; + std::vector Registers; + + bool operator==(const SRPEntry &Other) const { + return Point == Other.Point && Registers == Other.Registers; + } +}; + +using SaveRestorePoints = std::vector; + +template <> struct MappingTraits { + static void mapping(IO &YamlIO, SRPEntry &Entry) { + YamlIO.mapRequired("point", Entry.Point); + YamlIO.mapRequired("registers", Entry.Registers); + } +}; + template <> struct MappingTraits { static void mapping(IO &YamlIO, MachineJumpTable &JT) { YamlIO.mapRequired("kind", JT.Kind); @@ -618,6 +636,14 @@ template <> struct MappingTraits { } }; +} // namespace yaml +} // namespace llvm + +LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::yaml::SRPEntry) + +namespace llvm { +namespace yaml { + /// Serializable representation of MachineFrameInfo. /// /// Doesn't serialize attributes like 'StackAlignment', 'IsStackRealignable' and @@ -645,8 +671,8 @@ struct MachineFrameInfo { bool HasTailCall = false; bool IsCalleeSavedInfoValid = false; unsigned LocalFrameSize = 0; - StringValue SavePoint; - StringValue RestorePoint; + SaveRestorePoints SavePoints; + SaveRestorePoints RestorePoints; bool operator==(const MachineFrameInfo &Other) const { return IsFrameAddressTaken == Other.IsFrameAddressTaken && @@ -667,7 +693,8 @@ struct MachineFrameInfo { HasMustTailInVarArgFunc == Other.HasMustTailInVarArgFunc && HasTailCall == Other.HasTailCall && LocalFrameSize == Other.LocalFrameSize && - SavePoint == Other.SavePoint && RestorePoint == Other.RestorePoint && + SavePoints == Other.SavePoints && + RestorePoints == Other.RestorePoints && IsCalleeSavedInfoValid == Other.IsCalleeSavedInfoValid; } }; @@ -699,10 +726,12 @@ template <> struct MappingTraits { YamlIO.mapOptional("isCalleeSavedInfoValid", MFI.IsCalleeSavedInfoValid, false); YamlIO.mapOptional("localFrameSize", MFI.LocalFrameSize, (unsigned)0); - YamlIO.mapOptional("savePoint", MFI.SavePoint, - StringValue()); // Don't print it out when it's empty. - YamlIO.mapOptional("restorePoint", MFI.RestorePoint, - StringValue()); // Don't print it out when it's empty. + YamlIO.mapOptional( + "savePoints", MFI.SavePoints, + SaveRestorePoints()); // Don't print it out when it's empty. + YamlIO.mapOptional( + "restorePoints", MFI.RestorePoints, + SaveRestorePoints()); // Don't print it out when it's empty. } }; diff --git a/llvm/include/llvm/CodeGen/MachineDominators.h b/llvm/include/llvm/CodeGen/MachineDominators.h index 74cf94398736d..88800d91ef51a 100644 --- a/llvm/include/llvm/CodeGen/MachineDominators.h +++ b/llvm/include/llvm/CodeGen/MachineDominators.h @@ -185,6 +185,11 @@ class MachineDominatorTree : public DomTreeBase { return Base::findNearestCommonDominator(A, B); } + /// Returns the nearest common dominator of the given blocks. + /// If that tree node is a virtual root, a nullptr will be returned. + MachineBasicBlock * + findNearestCommonDominator(ArrayRef Blocks) const; + MachineDomTreeNode *operator[](MachineBasicBlock *BB) const { applySplitCriticalEdges(); return Base::getNode(BB); diff --git a/llvm/include/llvm/CodeGen/MachineFrameInfo.h b/llvm/include/llvm/CodeGen/MachineFrameInfo.h index 213b7ec6b3fbf..d746466d41c3e 100644 --- a/llvm/include/llvm/CodeGen/MachineFrameInfo.h +++ b/llvm/include/llvm/CodeGen/MachineFrameInfo.h @@ -27,6 +27,21 @@ class MachineBasicBlock; class BitVector; class AllocaInst; +using SaveRestorePoints = DenseMap>; + +class CalleeSavedInfoPerBB { + DenseMap> Map; + +public: + std::vector get(MachineBasicBlock *MBB) const { + return Map.lookup(MBB); + } + + void set(DenseMap> CSI) { + Map = std::move(CSI); + } +}; + /// The CalleeSavedInfo class tracks the information need to locate where a /// callee saved register is in the current frame. /// Callee saved reg can also be saved to a different register rather than @@ -37,6 +52,8 @@ class CalleeSavedInfo { int FrameIdx; unsigned DstReg; }; + std::vector SpilledIn; + std::vector RestoredIn; /// Flag indicating whether the register is actually restored in the epilog. /// In most cases, if a register is saved, it is also restored. There are /// some situations, though, when this is not the case. For example, the @@ -58,9 +75,9 @@ class CalleeSavedInfo { explicit CalleeSavedInfo(unsigned R, int FI = 0) : Reg(R), FrameIdx(FI) {} // Accessors. - Register getReg() const { return Reg; } - int getFrameIdx() const { return FrameIdx; } - unsigned getDstReg() const { return DstReg; } + Register getReg() const { return Reg; } + int getFrameIdx() const { return FrameIdx; } + unsigned getDstReg() const { return DstReg; } void setFrameIdx(int FI) { FrameIdx = FI; SpilledToReg = false; @@ -72,6 +89,16 @@ class CalleeSavedInfo { bool isRestored() const { return Restored; } void setRestored(bool R) { Restored = R; } bool isSpilledToReg() const { return SpilledToReg; } + ArrayRef spilledIn() const { return SpilledIn; } + ArrayRef restoredIn() const { return RestoredIn; } + void addSpilledIn(MachineBasicBlock *MBB) { SpilledIn.push_back(MBB); } + void addRestoredIn(MachineBasicBlock *MBB) { RestoredIn.push_back(MBB); } + void setSpilledIn(std::vector BBV) { + SpilledIn = std::move(BBV); + } + void setRestoredIn(std::vector BBV) { + RestoredIn = std::move(BBV); + } }; /// The MachineFrameInfo class represents an abstract stack frame until @@ -295,6 +322,10 @@ class MachineFrameInfo { /// Has CSInfo been set yet? bool CSIValid = false; + CalleeSavedInfoPerBB CSInfoPerSave; + + CalleeSavedInfoPerBB CSInfoPerRestore; + /// References to frame indices which are mapped /// into the local frame allocation block. SmallVector, 32> LocalFrameObjects; @@ -331,9 +362,16 @@ class MachineFrameInfo { bool HasTailCall = false; /// Not null, if shrink-wrapping found a better place for the prologue. - MachineBasicBlock *Save = nullptr; + MachineBasicBlock *Prolog = nullptr; /// Not null, if shrink-wrapping found a better place for the epilogue. - MachineBasicBlock *Restore = nullptr; + MachineBasicBlock *Epilog = nullptr; + + /// Not empty, if shrink-wrapping found a better place for saving callee + /// saves. + SaveRestorePoints SavePoints; + /// Not empty, if shrink-wrapping found a better place for restoring callee + /// saves. + SaveRestorePoints RestorePoints; /// Size of the UnsafeStack Frame uint64_t UnsafeStackSize = 0; @@ -809,21 +847,105 @@ class MachineFrameInfo { /// \copydoc getCalleeSavedInfo() std::vector &getCalleeSavedInfo() { return CSInfo; } + /// Returns callee saved info vector for provided save point in + /// the current function. + std::vector getCSInfoPerSave(MachineBasicBlock *MBB) const { + return CSInfoPerSave.get(MBB); + } + + /// Returns callee saved info vector for provided restore point + /// in the current function. + std::vector + getCSInfoPerRestore(MachineBasicBlock *MBB) const { + return CSInfoPerRestore.get(MBB); + } + /// Used by prolog/epilog inserter to set the function's callee saved /// information. void setCalleeSavedInfo(std::vector CSI) { CSInfo = std::move(CSI); } + /// Used by prolog/epilog inserter to set the function's callee saved + /// information for particular save point. + void setCSInfoPerSave( + DenseMap> CSI) { + CSInfoPerSave.set(CSI); + } + + /// Used by prolog/epilog inserter to set the function's callee saved + /// information for particular restore point. + void setCSInfoPerRestore( + DenseMap> CSI) { + CSInfoPerRestore.set(CSI); + } + /// Has the callee saved info been calculated yet? bool isCalleeSavedInfoValid() const { return CSIValid; } void setCalleeSavedInfoValid(bool v) { CSIValid = v; } - MachineBasicBlock *getSavePoint() const { return Save; } - void setSavePoint(MachineBasicBlock *NewSave) { Save = NewSave; } - MachineBasicBlock *getRestorePoint() const { return Restore; } - void setRestorePoint(MachineBasicBlock *NewRestore) { Restore = NewRestore; } + const SaveRestorePoints &getRestorePoints() const { return RestorePoints; } + + const SaveRestorePoints &getSavePoints() const { return SavePoints; } + + std::pair> + getRestorePoint(MachineBasicBlock *MBB) const { + if (auto It = RestorePoints.find(MBB); It != RestorePoints.end()) + return *It; + + std::vector Regs = {}; + return std::make_pair(nullptr, Regs); + } + + std::pair> + getSavePoint(MachineBasicBlock *MBB) const { + if (auto It = SavePoints.find(MBB); It != SavePoints.end()) + return *It; + + std::vector Regs = {}; + return std::make_pair(nullptr, Regs); + } + + void setSavePoints(SaveRestorePoints NewSavePoints) { + SavePoints = std::move(NewSavePoints); + } + + void setRestorePoints(SaveRestorePoints NewRestorePoints) { + RestorePoints = std::move(NewRestorePoints); + } + + void setSavePoint(MachineBasicBlock *MBB, std::vector &Regs) { + if (SavePoints.contains(MBB)) + SavePoints[MBB] = Regs; + else + SavePoints.insert(std::make_pair(MBB, Regs)); + } + + static const SaveRestorePoints constructSaveRestorePoints( + const SaveRestorePoints &SRP, + const DenseMap &BBMap) { + SaveRestorePoints Pts{}; + for (auto &Src : SRP) { + Pts.insert(std::make_pair(BBMap.find(Src.first)->second, Src.second)); + } + return Pts; + } + + void setRestorePoint(MachineBasicBlock *MBB, std::vector &Regs) { + if (RestorePoints.contains(MBB)) + RestorePoints[MBB] = Regs; + else + RestorePoints.insert(std::make_pair(MBB, Regs)); + } + + MachineBasicBlock *getProlog() const { return Prolog; } + void setProlog(MachineBasicBlock *BB) { Prolog = BB; } + MachineBasicBlock *getEpilog() const { return Epilog; } + void setEpilog(MachineBasicBlock *BB) { Epilog = BB; } + + void clearSavePoints() { SavePoints.clear(); } + void clearRestorePoints() { RestorePoints.clear(); } uint64_t getUnsafeStackSize() const { return UnsafeStackSize; } void setUnsafeStackSize(uint64_t Size) { UnsafeStackSize = Size; } diff --git a/llvm/include/llvm/CodeGen/TargetFrameLowering.h b/llvm/include/llvm/CodeGen/TargetFrameLowering.h index 97de0197da9b4..373455a630a99 100644 --- a/llvm/include/llvm/CodeGen/TargetFrameLowering.h +++ b/llvm/include/llvm/CodeGen/TargetFrameLowering.h @@ -199,6 +199,10 @@ class TargetFrameLowering { return false; } + /// enableCSRSaveRestorePointsSplit - Returns true if the target support + /// multiple save/restore points in shrink wrapping. + virtual bool enableCSRSaveRestorePointsSplit() const { return false; } + /// Returns true if the stack slot holes in the fixed and callee-save stack /// area should be used when allocating other stack locations to reduce stack /// size. diff --git a/llvm/lib/CodeGen/MIRParser/MIRParser.cpp b/llvm/lib/CodeGen/MIRParser/MIRParser.cpp index e2543f883f91c..835eeb2362ceb 100644 --- a/llvm/lib/CodeGen/MIRParser/MIRParser.cpp +++ b/llvm/lib/CodeGen/MIRParser/MIRParser.cpp @@ -124,6 +124,10 @@ class MIRParserImpl { bool initializeFrameInfo(PerFunctionMIParsingState &PFS, const yaml::MachineFunction &YamlMF); + bool initializeSaveRestorePoints(PerFunctionMIParsingState &PFS, + const yaml::SaveRestorePoints &YamlSRP, + bool IsSavePoints); + bool initializeCallSiteInfo(PerFunctionMIParsingState &PFS, const yaml::MachineFunction &YamlMF); @@ -832,18 +836,9 @@ bool MIRParserImpl::initializeFrameInfo(PerFunctionMIParsingState &PFS, MFI.setHasTailCall(YamlMFI.HasTailCall); MFI.setCalleeSavedInfoValid(YamlMFI.IsCalleeSavedInfoValid); MFI.setLocalFrameSize(YamlMFI.LocalFrameSize); - if (!YamlMFI.SavePoint.Value.empty()) { - MachineBasicBlock *MBB = nullptr; - if (parseMBBReference(PFS, MBB, YamlMFI.SavePoint)) - return true; - MFI.setSavePoint(MBB); - } - if (!YamlMFI.RestorePoint.Value.empty()) { - MachineBasicBlock *MBB = nullptr; - if (parseMBBReference(PFS, MBB, YamlMFI.RestorePoint)) - return true; - MFI.setRestorePoint(MBB); - } + initializeSaveRestorePoints(PFS, YamlMFI.SavePoints, true /*IsSavePoints*/); + initializeSaveRestorePoints(PFS, YamlMFI.RestorePoints, + false /*IsSavePoints*/); std::vector CSIInfo; // Initialize the fixed frame objects. @@ -1058,8 +1053,40 @@ bool MIRParserImpl::initializeConstantPool(PerFunctionMIParsingState &PFS, return false; } -bool MIRParserImpl::initializeJumpTableInfo(PerFunctionMIParsingState &PFS, - const yaml::MachineJumpTable &YamlJTI) { +bool MIRParserImpl::initializeSaveRestorePoints( + PerFunctionMIParsingState &PFS, const yaml::SaveRestorePoints &YamlSRP, + bool IsSavePoints) { + SMDiagnostic Error; + MachineFunction &MF = PFS.MF; + MachineFrameInfo &MFI = MF.getFrameInfo(); + llvm::SaveRestorePoints SRPoints; + + for (const auto &Entry : YamlSRP) { + const auto &MBBSource = Entry.Point; + MachineBasicBlock *MBB = nullptr; + if (parseMBBReference(PFS, MBB, MBBSource.Value)) + return true; + + std::vector Registers{}; + for (auto &RegStr : Entry.Registers) { + Register Reg; + if (parseNamedRegisterReference(PFS, Reg, RegStr.Value, Error)) + return error(Error, RegStr.SourceRange); + + Registers.push_back(Reg); + } + SRPoints.insert(std::make_pair(MBB, Registers)); + } + + if (IsSavePoints) + MFI.setSavePoints(SRPoints); + else + MFI.setRestorePoints(SRPoints); + return false; +} + +bool MIRParserImpl::initializeJumpTableInfo( + PerFunctionMIParsingState &PFS, const yaml::MachineJumpTable &YamlJTI) { MachineJumpTableInfo *JTI = PFS.MF.getOrCreateJumpTableInfo(YamlJTI.Kind); for (const auto &Entry : YamlJTI.Entries) { std::vector Blocks; diff --git a/llvm/lib/CodeGen/MIRPrinter.cpp b/llvm/lib/CodeGen/MIRPrinter.cpp index c8f6341c1224d..ea7c504d355c1 100644 --- a/llvm/lib/CodeGen/MIRPrinter.cpp +++ b/llvm/lib/CodeGen/MIRPrinter.cpp @@ -117,7 +117,10 @@ class MIRPrinter { const MachineRegisterInfo &RegInfo, const TargetRegisterInfo *TRI); void convert(ModuleSlotTracker &MST, yaml::MachineFrameInfo &YamlMFI, - const MachineFrameInfo &MFI); + const MachineFrameInfo &MFI, const TargetRegisterInfo *TRI); + void convert(ModuleSlotTracker &MST, yaml::SaveRestorePoints &YamlSRP, + const DenseMap> &SRP, + const TargetRegisterInfo *TRI); void convert(yaml::MachineFunction &MF, const MachineConstantPool &ConstantPool); void convert(ModuleSlotTracker &MST, yaml::MachineJumpTable &YamlJTI, @@ -235,7 +238,8 @@ void MIRPrinter::print(const MachineFunction &MF) { convert(YamlMF, MF, MF.getRegInfo(), MF.getSubtarget().getRegisterInfo()); MachineModuleSlotTracker MST(MMI, &MF); MST.incorporateFunction(MF.getFunction()); - convert(MST, YamlMF.FrameInfo, MF.getFrameInfo()); + convert(MST, YamlMF.FrameInfo, MF.getFrameInfo(), + MF.getSubtarget().getRegisterInfo()); convertStackObjects(YamlMF, MF, MST); convertEntryValueObjects(YamlMF, MF, MST); convertCallSiteObjects(YamlMF, MF, MST); @@ -372,7 +376,8 @@ void MIRPrinter::convert(yaml::MachineFunction &YamlMF, void MIRPrinter::convert(ModuleSlotTracker &MST, yaml::MachineFrameInfo &YamlMFI, - const MachineFrameInfo &MFI) { + const MachineFrameInfo &MFI, + const TargetRegisterInfo *TRI) { YamlMFI.IsFrameAddressTaken = MFI.isFrameAddressTaken(); YamlMFI.IsReturnAddressTaken = MFI.isReturnAddressTaken(); YamlMFI.HasStackMap = MFI.hasStackMap(); @@ -392,14 +397,10 @@ void MIRPrinter::convert(ModuleSlotTracker &MST, YamlMFI.HasTailCall = MFI.hasTailCall(); YamlMFI.IsCalleeSavedInfoValid = MFI.isCalleeSavedInfoValid(); YamlMFI.LocalFrameSize = MFI.getLocalFrameSize(); - if (MFI.getSavePoint()) { - raw_string_ostream StrOS(YamlMFI.SavePoint.Value); - StrOS << printMBBReference(*MFI.getSavePoint()); - } - if (MFI.getRestorePoint()) { - raw_string_ostream StrOS(YamlMFI.RestorePoint.Value); - StrOS << printMBBReference(*MFI.getRestorePoint()); - } + if (!MFI.getSavePoints().empty()) + convert(MST, YamlMFI.SavePoints, MFI.getSavePoints(), TRI); + if (!MFI.getRestorePoints().empty()) + convert(MST, YamlMFI.RestorePoints, MFI.getRestorePoints(), TRI); } void MIRPrinter::convertEntryValueObjects(yaml::MachineFunction &YMF, @@ -618,6 +619,28 @@ void MIRPrinter::convert(yaml::MachineFunction &MF, } } +void MIRPrinter::convert(ModuleSlotTracker &MST, + yaml::SaveRestorePoints &YamlSRP, + const SaveRestorePoints &SRP, + const TargetRegisterInfo *TRI) { + for (const auto &MBBEntry : SRP) { + std::string Str; + yaml::SRPEntry Entry; + raw_string_ostream StrOS(Str); + StrOS << printMBBReference(*MBBEntry.first); + Entry.Point = StrOS.str(); + Str.clear(); + for (auto &Reg : MBBEntry.second) { + if (Reg != MCRegister::NoRegister) { + StrOS << printReg(Reg, TRI); + Entry.Registers.push_back(StrOS.str()); + Str.clear(); + } + } + YamlSRP.push_back(Entry); + } +} + void MIRPrinter::convert(ModuleSlotTracker &MST, yaml::MachineJumpTable &YamlJTI, const MachineJumpTableInfo &JTI) { diff --git a/llvm/lib/CodeGen/MachineDominators.cpp b/llvm/lib/CodeGen/MachineDominators.cpp index a2cc8fdfa7c9f..384f90c6da66c 100644 --- a/llvm/lib/CodeGen/MachineDominators.cpp +++ b/llvm/lib/CodeGen/MachineDominators.cpp @@ -189,3 +189,19 @@ void MachineDominatorTree::applySplitCriticalEdges() const { NewBBs.clear(); CriticalEdgesToSplit.clear(); } + +MachineBasicBlock *MachineDominatorTree::findNearestCommonDominator( + ArrayRef Blocks) const { + assert(!Blocks.empty()); + + MachineBasicBlock *NCD = Blocks.front(); + for (MachineBasicBlock *BB : Blocks.drop_front()) { + NCD = Base::findNearestCommonDominator(NCD, BB); + + // Stop when the root is reached. + if (Base::isVirtualRoot(Base::getNode(NCD))) + return nullptr; + } + + return NCD; +} diff --git a/llvm/lib/CodeGen/MachineFrameInfo.cpp b/llvm/lib/CodeGen/MachineFrameInfo.cpp index e4b993850f73d..c6658d2e9eba8 100644 --- a/llvm/lib/CodeGen/MachineFrameInfo.cpp +++ b/llvm/lib/CodeGen/MachineFrameInfo.cpp @@ -244,6 +244,23 @@ void MachineFrameInfo::print(const MachineFunction &MF, raw_ostream &OS) const{ } OS << "\n"; } + + OS << "save/restore points:\n"; + + if (!SavePoints.empty()) { + OS << "save points:\n"; + + for (auto &item : SavePoints) + OS << printMBBReference(*item.first) << "\n"; + } else + OS << "save points are empty\n"; + + if (!RestorePoints.empty()) { + OS << "restore points:\n"; + for (auto &item : RestorePoints) + OS << printMBBReference(*item.first) << "\n"; + } else + OS << "restore points are empty\n"; } #if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP) diff --git a/llvm/lib/CodeGen/PrologEpilogInserter.cpp b/llvm/lib/CodeGen/PrologEpilogInserter.cpp index 34dd79c7b6184..d7dee80d4292b 100644 --- a/llvm/lib/CodeGen/PrologEpilogInserter.cpp +++ b/llvm/lib/CodeGen/PrologEpilogInserter.cpp @@ -99,8 +99,12 @@ class PEI : public MachineFunctionPass { unsigned MinCSFrameIndex = std::numeric_limits::max(); unsigned MaxCSFrameIndex = 0; - // Save and Restore blocks of the current function. Typically there is a - // single save block, unless Windows EH funclets are involved. + // Prolog and Epilog blocks of the current function. Typically there is a + // single Prolog block, unless Windows EH funclets are involved. + MBBVector PrologBlocks; + MBBVector EpilogBlocks; + + // Save and Restore blocks of the current function. MBBVector SaveBlocks; MBBVector RestoreBlocks; @@ -118,6 +122,7 @@ class PEI : public MachineFunctionPass { void calculateCallFrameInfo(MachineFunction &MF); void calculateSaveRestoreBlocks(MachineFunction &MF); + void calculatePrologEpilogBlocks(MachineFunction &MF); void spillCalleeSavedRegs(MachineFunction &MF); void calculateFrameObjectOffsets(MachineFunction &MF); @@ -234,14 +239,17 @@ bool PEI::runOnMachineFunction(MachineFunction &MF) { // information. Also eliminates call frame pseudo instructions. calculateCallFrameInfo(MF); - // Determine placement of CSR spill/restore code and prolog/epilog code: + // Determine placement of CSR spill/restore code: // place all spills in the entry block, all restores in return blocks. calculateSaveRestoreBlocks(MF); + // Determine placement of prolog/epilog code. + calculatePrologEpilogBlocks(MF); + // Stash away DBG_VALUEs that should not be moved by insertion of prolog code. SavedDbgValuesMap EntryDbgValues; - for (MachineBasicBlock *SaveBlock : SaveBlocks) - stashEntryDbgValues(*SaveBlock, EntryDbgValues); + for (MachineBasicBlock *PrologBlock : PrologBlocks) + stashEntryDbgValues(*PrologBlock, EntryDbgValues); // Handle CSR spilling and restoring, for targets that need it. if (MF.getTarget().usesPhysRegsForValues()) @@ -349,8 +357,10 @@ bool PEI::runOnMachineFunction(MachineFunction &MF) { delete RS; SaveBlocks.clear(); RestoreBlocks.clear(); - MFI.setSavePoint(nullptr); - MFI.setRestorePoint(nullptr); + PrologBlocks.clear(); + EpilogBlocks.clear(); + MFI.clearSavePoints(); + MFI.clearRestorePoints(); return true; } @@ -395,6 +405,25 @@ void PEI::calculateCallFrameInfo(MachineFunction &MF) { } } +/// Compute two sets of blocks for placing prolog and epilog code respectively. +void PEI::calculatePrologEpilogBlocks(MachineFunction &MF) { + const MachineFrameInfo &MFI = MF.getFrameInfo(); + MachineBasicBlock *Prolog = MFI.getProlog(); + MachineBasicBlock *Epilog = MFI.getEpilog(); + + if (Prolog) + PrologBlocks.push_back(Prolog); + + if (Epilog) + EpilogBlocks.push_back(Epilog); + + if (!Prolog && !SaveBlocks.empty()) + PrologBlocks = SaveBlocks; + + if (!Epilog && !RestoreBlocks.empty()) + EpilogBlocks = RestoreBlocks; +} + /// Compute the sets of entry and return blocks for saving and restoring /// callee-saved registers, and placing prolog and epilog code. void PEI::calculateSaveRestoreBlocks(MachineFunction &MF) { @@ -405,25 +434,32 @@ void PEI::calculateSaveRestoreBlocks(MachineFunction &MF) { // So set the save points for those. // Use the points found by shrink-wrapping, if any. - if (MFI.getSavePoint()) { - SaveBlocks.push_back(MFI.getSavePoint()); - assert(MFI.getRestorePoint() && "Both restore and save must be set"); - MachineBasicBlock *RestoreBlock = MFI.getRestorePoint(); - // If RestoreBlock does not have any successor and is not a return block - // then the end point is unreachable and we do not need to insert any - // epilogue. - if (!RestoreBlock->succ_empty() || RestoreBlock->isReturnBlock()) - RestoreBlocks.push_back(RestoreBlock); + if (!MFI.getSavePoints().empty()) { + assert(!MFI.getRestorePoints().empty() && + "Both restores and saves must be set"); + for (auto &item : MFI.getSavePoints()) + SaveBlocks.push_back(item.first); + + for (auto &item : MFI.getRestorePoints()) { + MachineBasicBlock *RestoreBlock = item.first; + // If RestoreBlock does not have any successor and is not a return block + // then the end point is unreachable and we do not need to insert any + // epilogue. + if (!RestoreBlock->succ_empty() || RestoreBlock->isReturnBlock()) + RestoreBlocks.push_back(RestoreBlock); + } return; } - // Save refs to entry and return blocks. - SaveBlocks.push_back(&MF.front()); - for (MachineBasicBlock &MBB : MF) { - if (MBB.isEHFuncletEntry()) - SaveBlocks.push_back(&MBB); - if (MBB.isReturnBlock()) - RestoreBlocks.push_back(&MBB); + if (MFI.getSavePoints().empty()) { + // Save refs to entry and return blocks. + SaveBlocks.push_back(&MF.front()); + for (MachineBasicBlock &MBB : MF) { + if (MBB.isEHFuncletEntry()) + SaveBlocks.push_back(&MBB); + if (MBB.isReturnBlock()) + RestoreBlocks.push_back(&MBB); + } } } @@ -522,8 +558,8 @@ static void assignCalleeSavedSpillSlots(MachineFunction &F, /// Helper function to update the liveness information for the callee-saved /// registers. -static void updateLiveness(MachineFunction &MF) { - MachineFrameInfo &MFI = MF.getFrameInfo(); +static void updateLiveness(MachineFunction &MF, MachineBasicBlock *Save, + MachineBasicBlock *Restore, CalleeSavedInfo &Info) { // Visited will contain all the basic blocks that are in the region // where the callee saved registers are alive: // - Anything that is not Save or Restore -> LiveThrough. @@ -534,7 +570,6 @@ static void updateLiveness(MachineFunction &MF) { SmallPtrSet Visited; SmallVector WorkList; MachineBasicBlock *Entry = &MF.front(); - MachineBasicBlock *Save = MFI.getSavePoint(); if (!Save) Save = Entry; @@ -545,7 +580,6 @@ static void updateLiveness(MachineFunction &MF) { } Visited.insert(Save); - MachineBasicBlock *Restore = MFI.getRestorePoint(); if (Restore) // By construction Restore cannot be visited, otherwise it // means there exists a path to Restore that does not go @@ -565,30 +599,27 @@ static void updateLiveness(MachineFunction &MF) { WorkList.push_back(SuccBB); } - const std::vector &CSI = MFI.getCalleeSavedInfo(); - MachineRegisterInfo &MRI = MF.getRegInfo(); - for (const CalleeSavedInfo &I : CSI) { - for (MachineBasicBlock *MBB : Visited) { - MCPhysReg Reg = I.getReg(); - // Add the callee-saved register as live-in. - // It's killed at the spill. - if (!MRI.isReserved(Reg) && !MBB->isLiveIn(Reg)) - MBB->addLiveIn(Reg); - } - // If callee-saved register is spilled to another register rather than - // spilling to stack, the destination register has to be marked as live for - // each MBB between the prologue and epilogue so that it is not clobbered - // before it is reloaded in the epilogue. The Visited set contains all - // blocks outside of the region delimited by prologue/epilogue. - if (I.isSpilledToReg()) { - for (MachineBasicBlock &MBB : MF) { - if (Visited.count(&MBB)) - continue; - MCPhysReg DstReg = I.getDstReg(); - if (!MBB.isLiveIn(DstReg)) - MBB.addLiveIn(DstReg); - } + + for (MachineBasicBlock *MBB : Visited) { + MCPhysReg Reg = Info.getReg(); + // Add the callee-saved register as live-in. + // It's killed at the spill. + if (!MRI.isReserved(Reg) && !MBB->isLiveIn(Reg)) + MBB->addLiveIn(Reg); + } + // If callee-saved register is spilled to another register rather than + // spilling to stack, the destination register has to be marked as live for + // each MBB between the save and restore point so that it is not clobbered + // before it is reloaded in the restore point. The Visited set contains all + // blocks outside of the region delimited by save/restore. + if (Info.isSpilledToReg()) { + for (MachineBasicBlock &MBB : MF) { + if (Visited.count(&MBB)) + continue; + MCPhysReg DstReg = Info.getDstReg(); + if (!MBB.isLiveIn(DstReg)) + MBB.addLiveIn(DstReg); } } } @@ -651,6 +682,57 @@ static void insertCSRRestores(MachineBasicBlock &RestoreBlock, } } +static void fillCSInfoPerBB( + SaveRestorePoints SRPoints, + DenseMap &RegToInfo, + DenseMap> &CSInfoPerBB, + bool isSave, MBBVector &PrologEpilogBlocks) { + std::vector CSIV = {}; + std::vector GCSIV = {}; + for (auto [BB, Regs] : SRPoints) { + CSIV.clear(); + for (auto &Reg : Regs) { + auto It = RegToInfo.find(Reg); + if (It == RegToInfo.end()) + continue; + CalleeSavedInfo *CSI = It->second; + if (isSave) + CSI->addSpilledIn(BB); + else + CSI->addRestoredIn(BB); + CSIV.push_back(*RegToInfo.at(Reg)); + GCSIV.push_back(*RegToInfo.at(Reg)); + } + std::sort(CSIV.begin(), CSIV.end(), + [](const CalleeSavedInfo &Lhs, const CalleeSavedInfo &Rhs) { + return Lhs.getFrameIdx() < Rhs.getFrameIdx(); + }); + CSInfoPerBB.insert(std::make_pair(BB, CSIV)); + } + + if (GCSIV.size() >= RegToInfo.size()) + return; + + for (auto &RTI : RegToInfo) { + if (find_if(GCSIV, [&RTI](const CalleeSavedInfo &CSI) { + return CSI.getReg() == RTI.first; + }) != std::end(GCSIV)) + continue; + for (auto BB : PrologEpilogBlocks) { + if (CSInfoPerBB.contains(BB)) { + CSInfoPerBB[BB].push_back(*RTI.second); + std::sort(CSInfoPerBB[BB].begin(), CSInfoPerBB[BB].end(), + [](const CalleeSavedInfo &Lhs, const CalleeSavedInfo &Rhs) { + return Lhs.getFrameIdx() < Rhs.getFrameIdx(); + }); + } + CSIV.clear(); + CSIV.push_back(*RTI.second); + CSInfoPerBB.insert(std::make_pair(BB, CSIV)); + } + } +} + void PEI::spillCalleeSavedRegs(MachineFunction &MF) { // We can't list this requirement in getRequiredProperties because some // targets (WebAssembly) use virtual registers past this point, and the pass @@ -678,19 +760,79 @@ void PEI::spillCalleeSavedRegs(MachineFunction &MF) { MFI.setCalleeSavedInfoValid(true); std::vector &CSI = MFI.getCalleeSavedInfo(); + DenseMap RegToInfo; + for (auto &CS : CSI) { + RegToInfo.insert(std::make_pair(CS.getReg(), &CS)); + } + + DenseMap> CSInfoPerSave{}; + DenseMap> + CSInfoPerRestore{}; + if (!MFI.getSavePoints().empty()) { + fillCSInfoPerBB(MFI.getSavePoints(), RegToInfo, CSInfoPerSave, + true /* isSave */, PrologBlocks); + fillCSInfoPerBB(MFI.getRestorePoints(), RegToInfo, CSInfoPerRestore, + false /* isSave */, EpilogBlocks); + } else { + for (MachineBasicBlock *PrologBlock : PrologBlocks) { + CSInfoPerSave.insert( + std::make_pair(PrologBlock, MFI.getCalleeSavedInfo())); + + for (auto &CS : CSI) { + CS.addSpilledIn(PrologBlock); + } + } + } + if (!CSI.empty()) { if (!MFI.hasCalls()) NumLeafFuncWithSpills++; for (MachineBasicBlock *SaveBlock : SaveBlocks) - insertCSRSaves(*SaveBlock, CSI); + insertCSRSaves(*SaveBlock, + CSInfoPerSave.empty() ? CSI : CSInfoPerSave[SaveBlock]); + + MachineBasicBlock *Save = nullptr; + MachineBasicBlock *Restore = nullptr; + for (auto &CS : CSI) { + if (!MFI.getSavePoints().empty()) { + auto &SavePoints = MFI.getSavePoints(); + auto &RestorePoints = MFI.getRestorePoints(); + auto CSRegFound = + [CS](const std::pair> + &Point) { return count(Point.second, CS.getReg()); }; + + if (auto PointIt = find_if(SavePoints, CSRegFound); + PointIt != std::end(SavePoints)) + Save = PointIt->first; + + if (auto PointIt = find_if(RestorePoints, CSRegFound); + PointIt != std::end(RestorePoints)) + Restore = PointIt->first; + } + // Update the live-in information of all the blocks up to the save + // point. + updateLiveness(MF, Save, Restore, CS); + } - // Update the live-in information of all the blocks up to the save point. - updateLiveness(MF); + if (MFI.getRestorePoints().empty()) { + for (MachineBasicBlock *EpilogBlock : EpilogBlocks) { + CSInfoPerRestore.insert( + std::make_pair(EpilogBlock, MFI.getCalleeSavedInfo())); + + for (auto &CS : CSI) + CS.addRestoredIn(EpilogBlock); + } + } for (MachineBasicBlock *RestoreBlock : RestoreBlocks) - insertCSRRestores(*RestoreBlock, CSI); + insertCSRRestores(*RestoreBlock, CSInfoPerRestore.empty() + ? CSI + : CSInfoPerRestore[RestoreBlock]); } + + MFI.setCSInfoPerSave(CSInfoPerSave); + MFI.setCSInfoPerRestore(CSInfoPerRestore); } } @@ -1162,26 +1304,26 @@ void PEI::insertPrologEpilogCode(MachineFunction &MF) { const TargetFrameLowering &TFI = *MF.getSubtarget().getFrameLowering(); // Add prologue to the function... - for (MachineBasicBlock *SaveBlock : SaveBlocks) - TFI.emitPrologue(MF, *SaveBlock); + for (MachineBasicBlock *PrologBlock : PrologBlocks) + TFI.emitPrologue(MF, *PrologBlock); // Add epilogue to restore the callee-save registers in each exiting block. - for (MachineBasicBlock *RestoreBlock : RestoreBlocks) - TFI.emitEpilogue(MF, *RestoreBlock); + for (MachineBasicBlock *EpilogBlock : EpilogBlocks) + TFI.emitEpilogue(MF, *EpilogBlock); // Zero call used registers before restoring callee-saved registers. insertZeroCallUsedRegs(MF); - for (MachineBasicBlock *SaveBlock : SaveBlocks) - TFI.inlineStackProbe(MF, *SaveBlock); + for (MachineBasicBlock *PrologBlock : PrologBlocks) + TFI.inlineStackProbe(MF, *PrologBlock); // Emit additional code that is required to support segmented stacks, if // we've been asked for it. This, when linked with a runtime with support // for segmented stacks (libgcc is one), will result in allocating stack // space in small chunks instead of one large contiguous block. if (MF.shouldSplitStack()) { - for (MachineBasicBlock *SaveBlock : SaveBlocks) - TFI.adjustForSegmentedStacks(MF, *SaveBlock); + for (MachineBasicBlock *PrologBlock : PrologBlocks) + TFI.adjustForSegmentedStacks(MF, *PrologBlock); } // Emit additional code that is required to explicitly handle the stack in @@ -1190,8 +1332,8 @@ void PEI::insertPrologEpilogCode(MachineFunction &MF) { // different conditional check and another BIF for allocating more stack // space. if (MF.getFunction().getCallingConv() == CallingConv::HiPE) - for (MachineBasicBlock *SaveBlock : SaveBlocks) - TFI.adjustForHiPEPrologue(MF, *SaveBlock); + for (MachineBasicBlock *PrologBlock : PrologBlocks) + TFI.adjustForHiPEPrologue(MF, *PrologBlock); } /// insertZeroCallUsedRegs - Zero out call used registers. diff --git a/llvm/lib/CodeGen/ShrinkWrap.cpp b/llvm/lib/CodeGen/ShrinkWrap.cpp index 2742437ceb589..362de836de9ab 100644 --- a/llvm/lib/CodeGen/ShrinkWrap.cpp +++ b/llvm/lib/CodeGen/ShrinkWrap.cpp @@ -93,13 +93,20 @@ STATISTIC(NumFunc, "Number of functions"); STATISTIC(NumCandidates, "Number of shrink-wrapping candidates"); STATISTIC(NumCandidatesDropped, "Number of shrink-wrapping candidates dropped because of frequency"); +STATISTIC( + NumFuncWithSplitting, + "Number of functions, for which we managed to split Save/Restore points"); static cl::opt EnableShrinkWrapOpt("enable-shrink-wrap", cl::Hidden, cl::desc("enable the shrink-wrapping pass")); static cl::opt EnablePostShrinkWrapOpt( - "enable-shrink-wrap-region-split", cl::init(true), cl::Hidden, - cl::desc("enable splitting of the restore block if possible")); + "enable-post-shrink-wrap-restore-split", cl::init(true), cl::Hidden, + cl::desc( + "enable after-shrink-wrap splitting of the restore block if possible")); +static cl::opt EnableShrinkWrapSplitOpt( + "enable-shrink-wrap-into-multiple-points", cl::init(false), cl::Hidden, + cl::desc("enable splitting of the save and restore blocks if possible")); namespace { @@ -116,15 +123,79 @@ class ShrinkWrap : public MachineFunctionPass { MachineDominatorTree *MDT = nullptr; MachinePostDominatorTree *MPDT = nullptr; - /// Current safe point found for the prologue. - /// The prologue will be inserted before the first instruction - /// in this basic block. - MachineBasicBlock *Save = nullptr; + /// Hash table, mapping register with its corresponding spill and restore + /// basic block. + DenseMap> + SavedRegs; - /// Current safe point found for the epilogue. - /// The epilogue will be inserted before the first terminator instruction - /// in this basic block. - MachineBasicBlock *Restore = nullptr; + class SaveRestorePoints { + llvm::SaveRestorePoints SRPoints; + + public: + llvm::SaveRestorePoints &get() { return SRPoints; } + + void set(llvm::SaveRestorePoints &Rhs) { SRPoints = std::move(Rhs); } + + void clear() { SRPoints.clear(); } + + bool areMultiple() const { return SRPoints.size() > 1; } + + MachineBasicBlock *getFirst() { + return SRPoints.empty() ? nullptr : SRPoints.begin()->first; + } + + void + insert(const std::pair> &Point) { + SRPoints.insert(Point); + } + + void insert(std::pair> &&Point) { + SRPoints.insert(Point); + } + + void insertReg( + Register Reg, MachineBasicBlock *MBB, + std::optional> SaveRestoreBlockList) { + assert(MBB && "MBB is nullptr"); + if (SRPoints.contains(MBB)) { + SRPoints[MBB].push_back(Reg); + return; + } + std::vector Regs{Reg}; + SRPoints.insert(std::make_pair(MBB, Regs)); + if (SaveRestoreBlockList.has_value()) + SaveRestoreBlockList->push_back(MBB); + } + + void print(raw_ostream &OS, const TargetRegisterInfo *TRI) const { + for (auto [BB, Regs] : SRPoints) { + OS << printMBBReference(*BB) << ": "; + for (auto ® : Regs) { + OS << printReg(reg, TRI) << " "; + } + OS << "\n"; + } + } + + void dump(const TargetRegisterInfo *TRI) const { print(dbgs(), TRI); } + }; + + /// Class, wrapping hash table contained safe points, found for register spill + /// mapped to the list of corresponding registers. Register spill will be + /// inserted before the first instruction in this basic block. + SaveRestorePoints SavePoints; + + /// Class, wrapping hash table contained safe points, found for register + /// restore mapped to the list of corresponding registers. Register restore + /// will be inserted before the first terminator instruction in this basic + /// block. + SaveRestorePoints RestorePoints; + + std::vector SaveBlocks; + std::vector RestoreBlocks; + + MachineBasicBlock *Prolog = nullptr; + MachineBasicBlock *Epilog = nullptr; /// Hold the information of the basic block frequency. /// Use to check the profitability of the new points. @@ -167,11 +238,17 @@ class ShrinkWrap : public MachineFunctionPass { /// therefore this approach is fair. BitVector StackAddressUsedBlockInfo; - /// Check if \p MI uses or defines a callee-saved register or - /// a frame index. If this is the case, this means \p MI must happen + /// Check if \p MI uses or defines a frame index. + /// If this is the case, this means \p MI must happen + /// after Save and before Restore. + bool useOrDefFI(const MachineInstr &MI, RegScavenger *RS, + bool StackAddressUsed) const; + + /// Check if \p MI uses or defines a callee-saved register. + /// If this is the case, this means \p MI must happen /// after Save and before Restore. - bool useOrDefCSROrFI(const MachineInstr &MI, RegScavenger *RS, - bool StackAddressUsed) const; + bool useOrDefCSR(const MachineInstr &MI, RegScavenger *RS, + std::set *RegsToSave) const; const SetOfRegs &getCurrentCSRs(RegScavenger *RS) const { if (CurrentCSRs.empty()) { @@ -188,12 +265,29 @@ class ShrinkWrap : public MachineFunctionPass { return CurrentCSRs; } + std::vector getTargetCSRList(MachineFunction &MF) { + const MCPhysReg *CSRegs = MF.getRegInfo().getCalleeSavedRegs(); + std::vector TargetCSRs; + for (unsigned i = 0; CSRegs[i]; ++i) + TargetCSRs.push_back(CSRegs[i]); + return TargetCSRs; + } + + void setupSaveRestorePoints(MachineFunction &MF); + + void performSimpleShrinkWrap(RegScavenger *RS, MachineBasicBlock &SavePoint); + + bool canSplitSaveRestorePoints( + const ReversePostOrderTraversal &RPOT, + RegScavenger *RS); + /// Update the Save and Restore points such that \p MBB is in /// the region that is dominated by Save and post-dominated by Restore /// and Save and Restore still match the safe point definition. /// Such point may not exist and Save and/or Restore may be null after /// this call. - void updateSaveRestorePoints(MachineBasicBlock &MBB, RegScavenger *RS); + void updateSaveRestorePoints(MachineBasicBlock &MBB, Register Reg, + RegScavenger *RS); // Try to find safe point based on dominance and block frequency without // any change in IR. @@ -204,7 +298,8 @@ class ShrinkWrap : public MachineFunctionPass { /// This function tries to split the restore point if doing so can shrink the /// save point further. \return True if restore point is split. bool postShrinkWrapping(bool HasCandidate, MachineFunction &MF, - RegScavenger *RS); + RegScavenger *RS, MachineBasicBlock *Save, + MachineBasicBlock *Restore); /// This function analyzes if the restore point can split to create a new /// restore point. This function collects @@ -226,8 +321,13 @@ class ShrinkWrap : public MachineFunctionPass { RCI.runOnMachineFunction(MF); MDT = &getAnalysis().getDomTree(); MPDT = &getAnalysis().getPostDomTree(); - Save = nullptr; - Restore = nullptr; + SavedRegs.clear(); + SavePoints.clear(); + RestorePoints.clear(); + Prolog = nullptr; + Epilog = nullptr; + SaveBlocks.clear(); + RestoreBlocks.clear(); MBFI = &getAnalysis().getMBFI(); MLI = &getAnalysis().getLI(); ORE = &getAnalysis().getORE(); @@ -246,7 +346,22 @@ class ShrinkWrap : public MachineFunctionPass { /// Check whether or not Save and Restore points are still interesting for /// shrink-wrapping. - bool ArePointsInteresting() const { return Save != Entry && Save && Restore; } + bool AreCandidatesFound(bool splitEnabled) const { + if (SavedRegs.empty()) + return false; + + auto Cond = [splitEnabled, this](auto &RegEntry) { + auto [Save, Restore] = RegEntry.second; + return (Save && Restore && Save != Entry) == splitEnabled; + }; + + auto It = std::find_if(begin(SavedRegs), end(SavedRegs), Cond); + + if (It == SavedRegs.end()) + return !splitEnabled; + + return splitEnabled; + } /// Check if shrink wrapping is enabled for this target and function. static bool isShrinkWrapEnabled(const MachineFunction &MF); @@ -294,8 +409,8 @@ INITIALIZE_PASS_DEPENDENCY(MachineLoopInfoWrapperPass) INITIALIZE_PASS_DEPENDENCY(MachineOptimizationRemarkEmitterPass) INITIALIZE_PASS_END(ShrinkWrap, DEBUG_TYPE, "Shrink Wrap Pass", false, false) -bool ShrinkWrap::useOrDefCSROrFI(const MachineInstr &MI, RegScavenger *RS, - bool StackAddressUsed) const { +bool ShrinkWrap::useOrDefFI(const MachineInstr &MI, RegScavenger *RS, + bool StackAddressUsed) const { /// Check if \p Op is known to access an address not on the function's stack . /// At the moment, accesses where the underlying object is a global, function /// argument, or jump table are considered non-stack accesses. Note that the @@ -327,10 +442,28 @@ bool ShrinkWrap::useOrDefCSROrFI(const MachineInstr &MI, RegScavenger *RS, LLVM_DEBUG(dbgs() << "Frame instruction: " << MI << '\n'); return true; } + + if (MI.isDebugValue()) + return false; + + const auto &Ops = MI.operands(); + + auto FIOpIt = std::find_if(Ops.begin(), Ops.end(), + [](const auto &MO) { return MO.isFI(); }); + if (FIOpIt == Ops.end()) + return false; + + LLVM_DEBUG(dbgs() << "Use or define FI( " << FIOpIt->isFI() << "): " << MI + << '\n'); + + return true; +} + +bool ShrinkWrap::useOrDefCSR(const MachineInstr &MI, RegScavenger *RS, + std::set *RegsToSave) const { const MachineFunction *MF = MI.getParent()->getParent(); const TargetRegisterInfo *TRI = MF->getSubtarget().getRegisterInfo(); for (const MachineOperand &MO : MI.operands()) { - bool UseOrDefCSR = false; if (MO.isReg()) { // Ignore instructions like DBG_VALUE which don't read/def the register. if (!MO.isDef() && !MO.readsReg()) @@ -348,25 +481,32 @@ bool ShrinkWrap::useOrDefCSROrFI(const MachineInstr &MI, RegScavenger *RS, // calling convention definitions, so we need to watch for it, too. An LR // mentioned implicitly by a return (or "branch to link register") // instruction we can ignore, otherwise we may pessimize shrinkwrapping. - UseOrDefCSR = - (!MI.isCall() && PhysReg == SP) || + if ((!MI.isCall() && PhysReg == SP) || RCI.getLastCalleeSavedAlias(PhysReg) || - (!MI.isReturn() && TRI->isNonallocatableRegisterCalleeSave(PhysReg)); + (!MI.isReturn() && + TRI->isNonallocatableRegisterCalleeSave(PhysReg))) { + LLVM_DEBUG(dbgs() << MI << " uses or defines CSR: " + << RCI.getLastCalleeSavedAlias(PhysReg) << "\n"); + if (!RegsToSave) + return true; + + RegsToSave->insert(PhysReg); + } } else if (MO.isRegMask()) { // Check if this regmask clobbers any of the CSRs. for (unsigned Reg : getCurrentCSRs(RS)) { if (MO.clobbersPhysReg(Reg)) { - UseOrDefCSR = true; - break; + if (!RegsToSave) + return true; + RegsToSave->insert(Reg); } } } - // Skip FrameIndex operands in DBG_VALUE instructions. - if (UseOrDefCSR || (MO.isFI() && !MI.isDebugValue())) { - LLVM_DEBUG(dbgs() << "Use or define CSR(" << UseOrDefCSR << ") or FI(" - << MO.isFI() << "): " << MI << '\n'); - return true; - } + } + + // Skip FrameIndex operands in DBG_VALUE instructions. + if (RegsToSave && !RegsToSave->empty()) { + return true; } return false; } @@ -557,7 +697,8 @@ bool ShrinkWrap::checkIfRestoreSplittable( SmallVectorImpl &CleanPreds, const TargetInstrInfo *TII, RegScavenger *RS) { for (const MachineInstr &MI : *CurRestore) - if (useOrDefCSROrFI(MI, RS, /*StackAddressUsed=*/true)) + if (useOrDefFI(MI, RS, /*StackAddressUsed=*/true) || + useOrDefCSR(MI, RS, nullptr)) return false; for (MachineBasicBlock *PredBB : CurRestore->predecessors()) { @@ -574,7 +715,8 @@ bool ShrinkWrap::checkIfRestoreSplittable( } bool ShrinkWrap::postShrinkWrapping(bool HasCandidate, MachineFunction &MF, - RegScavenger *RS) { + RegScavenger *RS, MachineBasicBlock *Save, + MachineBasicBlock *Restore) { if (!EnablePostShrinkWrapOpt) return false; @@ -617,7 +759,8 @@ bool ShrinkWrap::postShrinkWrapping(bool HasCandidate, MachineFunction &MF, continue; } for (const MachineInstr &MI : MBB) - if (useOrDefCSROrFI(MI, RS, /*StackAddressUsed=*/true)) { + if (useOrDefFI(MI, RS, /*StackAddressUsed=*/true) || + useOrDefCSR(MI, RS, nullptr)) { DirtyBBs.insert(&MBB); break; } @@ -677,34 +820,51 @@ bool ShrinkWrap::postShrinkWrapping(bool HasCandidate, MachineFunction &MF, assert((EntryFreq >= MBFI->getBlockFreq(Save) && EntryFreq >= MBFI->getBlockFreq(Restore)) && "Incorrect save or restore point based on block frequency"); + + SavePoints.clear(); + RestorePoints.clear(); + + std::vector Regs = getTargetCSRList(MF); + SavePoints.insert(std::make_pair(Save, Regs)); + RestorePoints.insert(std::make_pair(Restore, Regs)); + Prolog = Save; + Epilog = Restore; return true; } -void ShrinkWrap::updateSaveRestorePoints(MachineBasicBlock &MBB, +void ShrinkWrap::updateSaveRestorePoints(MachineBasicBlock &MBB, Register Reg, RegScavenger *RS) { + MachineBasicBlock *Save = nullptr; + MachineBasicBlock *Restore = nullptr; + // Get rid of the easy cases first. - if (!Save) - Save = &MBB; - else + if (SavedRegs.contains(Reg) && (Save = SavedRegs.at(Reg).first)) Save = MDT->findNearestCommonDominator(Save, &MBB); - assert(Save); + else { + auto Pos = + SavedRegs.insert(std::make_pair(Reg, std::make_pair(&MBB, nullptr))); + Save = Pos.first->second.first; + } + assert(SavedRegs.contains(Reg) && Save); + + Restore = SavedRegs.at(Reg).second; if (!Restore) Restore = &MBB; - else if (MPDT->getNode(&MBB)) // If the block is not in the post dom tree, it - // means the block never returns. If that's the - // case, we don't want to call + else if (MPDT->getNode(&MBB)) // If the block is not in the post dom tree, + // it means the block never returns. If + // that's the case, we don't want to call // `findNearestCommonDominator`, which will - // return `Restore`. + // return `Restore` and RestoreBlock for + // this register will be null. Restore = MPDT->findNearestCommonDominator(Restore, &MBB); - else - Restore = nullptr; // Abort, we can't find a restore point in this case. // Make sure we would be able to insert the restore code before the // terminator. if (Restore == &MBB) { for (const MachineInstr &Terminator : MBB.terminators()) { - if (!useOrDefCSROrFI(Terminator, RS, /*StackAddressUsed=*/true)) + if (!useOrDefFI(Terminator, RS, /*StackAddressUsed=*/true) && + !useOrDefCSR(Terminator, RS, nullptr)) continue; // One of the terminator needs to happen before the restore point. if (MBB.succ_empty()) { @@ -719,8 +879,10 @@ void ShrinkWrap::updateSaveRestorePoints(MachineBasicBlock &MBB, } if (!Restore) { - LLVM_DEBUG( - dbgs() << "Restore point needs to be spanned on several blocks\n"); + SavedRegs[Reg].first = Save; + SavedRegs[Reg].second = nullptr; + LLVM_DEBUG(dbgs() << "Restore point needs to be spanned on several blocks " + << Reg << "\n"); return; } @@ -796,6 +958,8 @@ void ShrinkWrap::updateSaveRestorePoints(MachineBasicBlock &MBB, } } } + SavedRegs[Reg].first = Save; + SavedRegs[Reg].second = Restore; } static bool giveUpWithRemarks(MachineOptimizationRemarkEmitter *ORE, @@ -811,9 +975,86 @@ static bool giveUpWithRemarks(MachineOptimizationRemarkEmitter *ORE, return false; } +void ShrinkWrap::setupSaveRestorePoints(MachineFunction &MF) { + for (unsigned Reg : getTargetCSRList(MF)) { + auto [Save, Restore] = SavedRegs[Reg]; + if (SavedRegs.contains(Reg) && Save && Restore) + continue; + + SavePoints.insertReg(Reg, &MF.front(), SaveBlocks); + for (MachineBasicBlock &MBB : MF) { + if (MBB.isEHFuncletEntry()) + SavePoints.insertReg(Reg, &MBB, SaveBlocks); + if (MBB.isReturnBlock()) + RestorePoints.insertReg(Reg, &MBB, RestoreBlocks); + } + } + + for (auto [Reg, SaveRestoreBlocks] : SavedRegs) { + auto [Save, Restore] = SaveRestoreBlocks; + if (Save && Restore) { + SavePoints.insertReg(Reg, Save, SaveBlocks); + if (!Restore->succ_empty() || Restore->isReturnBlock()) + RestorePoints.insertReg(Reg, Restore, RestoreBlocks); + else + RestorePoints.insertReg(Reg, Restore, std::nullopt); + } + } +} + +bool ShrinkWrap::canSplitSaveRestorePoints( + const ReversePostOrderTraversal &RPOT, + RegScavenger *RS) { + for (MachineBasicBlock *MBB : RPOT) { + if (MBB->isEHPad() || MBB->isInlineAsmBrIndirectTarget()) + return false; + + // Check if we found any stack accesses in the predecessors. We are not + // doing a full dataflow analysis here to keep things simple but just + // rely on a reverse portorder traversal (RPOT) to guarantee predecessors + // are already processed except for loops (and accept the conservative + // result for loops). + bool StackAddressUsed = any_of(MBB->predecessors(), [&](auto *Pred) { + return StackAddressUsedBlockInfo.test(Pred->getNumber()); + }); + + for (const MachineInstr &MI : *MBB) { + if (useOrDefFI(MI, RS, StackAddressUsed)) + return false; + + if (useOrDefCSR(MI, RS, nullptr)) + StackAddressUsed = true; + } + + StackAddressUsedBlockInfo[MBB->getNumber()] = StackAddressUsed; + } + return true; +} + +void ShrinkWrap::performSimpleShrinkWrap(RegScavenger *RS, + MachineBasicBlock &SavePoint) { + auto MF = SavePoint.getParent(); + auto CSRs = getTargetCSRList(*MF); + if (!CSRs.empty()) { + for (unsigned Reg : CSRs) { + if (SavedRegs.contains(Reg) && + (!SavedRegs[Reg].first || !SavedRegs[Reg].second)) + continue; + updateSaveRestorePoints(SavePoint, Reg, RS); + } + } else + updateSaveRestorePoints(SavePoint, MCRegister::NoRegister, RS); +} + bool ShrinkWrap::performShrinkWrapping( const ReversePostOrderTraversal &RPOT, RegScavenger *RS) { + const TargetFrameLowering *TFI = + MachineFunc->getSubtarget().getFrameLowering(); + + bool canSplit = canSplitSaveRestorePoints(RPOT, RS); + StackAddressUsedBlockInfo.set(); + for (MachineBasicBlock *MBB : RPOT) { LLVM_DEBUG(dbgs() << "Look into: " << printMBBReference(*MBB) << '\n'); @@ -828,8 +1069,9 @@ bool ShrinkWrap::performShrinkWrapping( // are at least at the boundary of the save and restore points. The // problem is that a basic block can jump out from the middle in these // cases, which we do not handle. - updateSaveRestorePoints(*MBB, RS); - if (!ArePointsInteresting()) { + performSimpleShrinkWrap(RS, *MBB); + + if (!AreCandidatesFound(false /* splitEnabled */)) { LLVM_DEBUG(dbgs() << "EHPad/inlineasm_br prevents shrink-wrapping\n"); return false; } @@ -849,30 +1091,40 @@ bool ShrinkWrap::performShrinkWrapping( } } + std::set RegsToSave; + for (const MachineInstr &MI : *MBB) { - if (useOrDefCSROrFI(MI, RS, StackAddressUsed)) { - // Save (resp. restore) point must dominate (resp. post dominate) - // MI. Look for the proper basic block for those. - updateSaveRestorePoints(*MBB, RS); - // If we are at a point where we cannot improve the placement of - // save/restore instructions, just give up. - if (!ArePointsInteresting()) { - LLVM_DEBUG(dbgs() << "No Shrink wrap candidate found\n"); + RegsToSave.clear(); + if (useOrDefFI(MI, RS, StackAddressUsed)) { + performSimpleShrinkWrap(RS, *MBB); + if (!AreCandidatesFound(false /* splitEnabled */)) { + LLVM_DEBUG(dbgs() << "No Shrink wrap candidate found!~\n"); return false; } - // No need to look for other instructions, this basic block - // will already be part of the handled region. StackAddressUsed = true; - break; + continue; + } + + if (useOrDefCSR(MI, RS, &RegsToSave)) { + if (!EnableShrinkWrapSplitOpt || + !TFI->enableCSRSaveRestorePointsSplit() || !canSplit) + performSimpleShrinkWrap(RS, *MBB); + else { + for (auto Reg : RegsToSave) { + // Save (resp. restore) point must dominate (resp. post dominate) + // MI. Look for the proper basic block for those. + updateSaveRestorePoints(*MBB, Reg, RS); + } + } + StackAddressUsed = true; } } StackAddressUsedBlockInfo[MBB->getNumber()] = StackAddressUsed; } - if (!ArePointsInteresting()) { + if (!AreCandidatesFound(true /* splitEnabled */)) { // If the points are not interesting at this point, then they must be null // because it means we did not encounter any frame/CSR related code. // Otherwise, we would have returned from the previous loop. - assert(!Save && !Restore && "We miss a shrink-wrap opportunity?!"); LLVM_DEBUG(dbgs() << "Nothing to shrink-wrap\n"); return false; } @@ -880,40 +1132,44 @@ bool ShrinkWrap::performShrinkWrapping( LLVM_DEBUG(dbgs() << "\n ** Results **\nFrequency of the Entry: " << EntryFreq.getFrequency() << '\n'); - const TargetFrameLowering *TFI = - MachineFunc->getSubtarget().getFrameLowering(); - do { - LLVM_DEBUG(dbgs() << "Shrink wrap candidates (#, Name, Freq):\nSave: " - << printMBBReference(*Save) << ' ' - << printBlockFreq(*MBFI, *Save) - << "\nRestore: " << printMBBReference(*Restore) << ' ' - << printBlockFreq(*MBFI, *Restore) << '\n'); - - bool IsSaveCheap, TargetCanUseSaveAsPrologue = false; - if (((IsSaveCheap = EntryFreq >= MBFI->getBlockFreq(Save)) && - EntryFreq >= MBFI->getBlockFreq(Restore)) && - ((TargetCanUseSaveAsPrologue = TFI->canUseAsPrologue(*Save)) && - TFI->canUseAsEpilogue(*Restore))) - break; - LLVM_DEBUG( - dbgs() << "New points are too expensive or invalid for the target\n"); - MachineBasicBlock *NewBB; - if (!IsSaveCheap || !TargetCanUseSaveAsPrologue) { - Save = FindIDom<>(*Save, Save->predecessors(), *MDT); - if (!Save) - break; - NewBB = Save; - } else { - // Restore is expensive. - Restore = FindIDom<>(*Restore, Restore->successors(), *MPDT); - if (!Restore) + for (auto [Reg, SaveRestoreBlocks] : SavedRegs) { + auto [Save, Restore] = SaveRestoreBlocks; + if (!Save || !Restore) + continue; + + do { + LLVM_DEBUG(dbgs() << "Shrink wrap candidates (#, Name, Freq):\nSave: " + << printMBBReference(*Save) << ' ' + << printBlockFreq(*MBFI, *Save) + << "\nRestore: " << printMBBReference(*Restore) << ' ' + << printBlockFreq(*MBFI, *Restore) << '\n'); + + bool IsSaveCheap, TargetCanUseSaveAsPrologue = false; + if (((IsSaveCheap = EntryFreq >= MBFI->getBlockFreq(Save)) && + EntryFreq >= MBFI->getBlockFreq(Restore)) && + ((TargetCanUseSaveAsPrologue = TFI->canUseAsPrologue(*Save)) && + TFI->canUseAsEpilogue(*Restore))) break; - NewBB = Restore; - } - updateSaveRestorePoints(*NewBB, RS); - } while (Save && Restore); + LLVM_DEBUG( + dbgs() << "New points are too expensive or invalid for the target\n"); + MachineBasicBlock *NewBB; + if (!IsSaveCheap || !TargetCanUseSaveAsPrologue) { + Save = FindIDom<>(*Save, Save->predecessors(), *MDT); + if (!Save) + break; + NewBB = Save; + } else { + // Restore is expensive. + Restore = FindIDom<>(*Restore, Restore->successors(), *MPDT); + if (!Restore) + break; + NewBB = Restore; + } + updateSaveRestorePoints(*NewBB, Reg, RS); + } while (Save && Restore); + } - if (!ArePointsInteresting()) { + if (!AreCandidatesFound(true /* splitEnabled */)) { ++NumCandidatesDropped; return false; } @@ -951,21 +1207,49 @@ bool ShrinkWrap::runOnMachineFunction(MachineFunction &MF) { // basic block and change the state only for those basic blocks for which we // were able to prove the opposite. StackAddressUsedBlockInfo.resize(MF.getNumBlockIDs(), true); - bool HasCandidate = performShrinkWrapping(RPOT, RS.get()); + bool HasCandidates = performShrinkWrapping(RPOT, RS.get()); StackAddressUsedBlockInfo.clear(); - Changed = postShrinkWrapping(HasCandidate, MF, RS.get()); - if (!HasCandidate && !Changed) - return false; - if (!ArePointsInteresting()) - return Changed; - LLVM_DEBUG(dbgs() << "Final shrink wrap candidates:\nSave: " - << printMBBReference(*Save) << ' ' - << "\nRestore: " << printMBBReference(*Restore) << '\n'); + if (HasCandidates) { + setupSaveRestorePoints(MF); + Prolog = SaveBlocks.empty() ? nullptr + : MDT->findNearestCommonDominator(SaveBlocks); + Epilog = RestoreBlocks.empty() + ? nullptr + : MPDT->findNearestCommonDominator(RestoreBlocks); + } + + if (!HasCandidates || + (!SavePoints.areMultiple() && !RestorePoints.areMultiple())) { + Changed = + postShrinkWrapping(HasCandidates, MF, RS.get(), SavePoints.getFirst(), + RestorePoints.getFirst()); + if (!HasCandidates && !Changed) + return false; + + if ((!SavePoints.getFirst()) || (!RestorePoints.getFirst()) || + (SavePoints.getFirst() == Entry)) + return Changed; + } + + if (SavePoints.areMultiple() || RestorePoints.areMultiple()) { + ++NumFuncWithSplitting; + } + + LLVM_DEBUG(dbgs() << "Final shrink wrap candidates:\n"); + + LLVM_DEBUG(dbgs() << "SavePoints:\n"); + LLVM_DEBUG(SavePoints.dump(TRI)); + + LLVM_DEBUG(dbgs() << "RestorePoints:\n"); + LLVM_DEBUG(RestorePoints.dump(TRI)); MachineFrameInfo &MFI = MF.getFrameInfo(); - MFI.setSavePoint(Save); - MFI.setRestorePoint(Restore); + + MFI.setProlog(Prolog); + MFI.setEpilog(Epilog); + MFI.setSavePoints(SavePoints.get()); + MFI.setRestorePoints(RestorePoints.get()); ++NumCandidates; return Changed; } diff --git a/llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp b/llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp index f868843318ff6..fbe7190b32576 100644 --- a/llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp +++ b/llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp @@ -193,25 +193,33 @@ void SILowerSGPRSpills::calculateSaveRestoreBlocks(MachineFunction &MF) { // So set the save points for those. // Use the points found by shrink-wrapping, if any. - if (MFI.getSavePoint()) { - SaveBlocks.push_back(MFI.getSavePoint()); - assert(MFI.getRestorePoint() && "Both restore and save must be set"); - MachineBasicBlock *RestoreBlock = MFI.getRestorePoint(); - // If RestoreBlock does not have any successor and is not a return block - // then the end point is unreachable and we do not need to insert any - // epilogue. - if (!RestoreBlock->succ_empty() || RestoreBlock->isReturnBlock()) - RestoreBlocks.push_back(RestoreBlock); + + if (!MFI.getSavePoints().empty()) { + assert(!MFI.getRestorePoints().empty() && + "Both restores and saves must be set"); + for (auto &item : MFI.getSavePoints()) + SaveBlocks.push_back(item.first); + + for (auto &item : MFI.getRestorePoints()) { + MachineBasicBlock *RestoreBlock = item.first; + // If RestoreBlock does not have any successor and is not a return block + // then the end point is unreachable and we do not need to insert any + // epilogue. + if (!RestoreBlock->succ_empty() || RestoreBlock->isReturnBlock()) + RestoreBlocks.push_back(RestoreBlock); + } return; } - // Save refs to entry and return blocks. - SaveBlocks.push_back(&MF.front()); - for (MachineBasicBlock &MBB : MF) { - if (MBB.isEHFuncletEntry()) - SaveBlocks.push_back(&MBB); - if (MBB.isReturnBlock()) - RestoreBlocks.push_back(&MBB); + if (MFI.getSavePoints().empty()) { + // Save refs to entry and return blocks. + SaveBlocks.push_back(&MF.front()); + for (MachineBasicBlock &MBB : MF) { + if (MBB.isEHFuncletEntry()) + SaveBlocks.push_back(&MBB); + if (MBB.isReturnBlock()) + RestoreBlocks.push_back(&MBB); + } } } diff --git a/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp b/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp index b118976b4731c..effdb6a41cee8 100644 --- a/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp +++ b/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp @@ -2075,10 +2075,9 @@ void PPCFrameLowering::processFunctionBeforeFrameFinalized(MachineFunction &MF, // tail call might not be in the new RestoreBlock, so real branch instruction // won't be generated by emitEpilogue(), because shrink-wrap has chosen new // RestoreBlock. So we handle this case here. - if (MFI.getSavePoint() && MFI.hasTailCall()) { - MachineBasicBlock *RestoreBlock = MFI.getRestorePoint(); + if (!MFI.getSavePoints().empty() && MFI.hasTailCall()) { for (MachineBasicBlock &MBB : MF) { - if (MBB.isReturnBlock() && (&MBB) != RestoreBlock) + if (MBB.isReturnBlock() && (!MFI.getRestorePoint(&MBB).first)) createTailCallBranchInstr(MBB); } } diff --git a/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp b/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp index deb0b627225c6..738bb8acb57c1 100644 --- a/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp +++ b/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp @@ -29,6 +29,33 @@ using namespace llvm; namespace { +static int64_t calculateCSRSpillOffsets(MachineFrameInfo &MFI, + const TargetFrameLowering *TFI, + int MinCSFI, int FrameIdx) { + int LocalAreaOffset = -TFI->getOffsetOfLocalArea(); + Align MaxAlign = MFI.getMaxAlign(); + Align Alignment = MFI.getObjectAlign(FrameIdx); + MaxAlign = std::max(MaxAlign, Alignment); + int64_t Offset = LocalAreaOffset; + + for (int i = MFI.getObjectIndexBegin(); i != 0; ++i) { + // Only allocate objects on the default stack. + if (MFI.getStackID(i) != TargetStackID::Default) + continue; + + int64_t FixedOff; + FixedOff = -MFI.getObjectOffset(i); + if (FixedOff > Offset) + Offset = FixedOff; + } + + for (int i = MinCSFI; i <= FrameIdx; ++i) + Offset += MFI.getObjectSize(i); + + Offset = alignTo(Offset, Alignment); + return -Offset; +} + class CFISaveRegisterEmitter { MachineFunction &MF; MachineFrameInfo &MFI; @@ -41,7 +68,25 @@ class CFISaveRegisterEmitter { const RISCVRegisterInfo &RI, const RISCVInstrInfo &TII, const DebugLoc &DL, const CalleeSavedInfo &CS) const { int FrameIdx = CS.getFrameIdx(); - int64_t Offset = MFI.getObjectOffset(FrameIdx); + if (FrameIdx >= 0 && + MFI.getStackID(FrameIdx) == TargetStackID::ScalableVector) + return; + + int64_t Offset = 0; + + MachineFrameInfo &MFI = MF.getFrameInfo(); + auto *RVFI = MF.getInfo(); + std::vector GCSI = MFI.getCalleeSavedInfo(); + + if (FrameIdx < 0 && + (RVFI->isPushable(MF) || RVFI->useSaveRestoreLibCalls(MF))) + Offset = MFI.getObjectOffset(FrameIdx); + else { + const TargetFrameLowering *TFI = MF.getSubtarget().getFrameLowering(); + Offset = calculateCSRSpillOffsets( + MFI, TFI, std::max(GCSI[0].getFrameIdx(), 0), FrameIdx); + } + Register Reg = CS.getReg(); unsigned CFIIndex = MF.addFrameInst(MCCFIInstruction::createOffset( nullptr, RI.getDwarfRegNum(Reg, true), Offset)); @@ -449,9 +494,8 @@ uint64_t RISCVFrameLowering::getStackSizeWithRVVPadding( return alignTo(MFI.getStackSize() + RVFI->getRVVPadding(), getStackAlign()); } -static SmallVector -getUnmanagedCSI(const MachineFunction &MF, - const std::vector &CSI) { +SmallVector RISCVFrameLowering::getUnmanagedCSI( + const MachineFunction &MF, const std::vector &CSI) const { const MachineFrameInfo &MFI = MF.getFrameInfo(); SmallVector NonLibcallCSI; @@ -628,13 +672,14 @@ void RISCVFrameLowering::emitPrologue(MachineFunction &MF, // Since spillCalleeSavedRegisters may have inserted a libcall, skip past // any instructions marked as FrameSetup - while (MBBI != MBB.end() && MBBI->getFlag(MachineInstr::FrameSetup)) + while (MBBI != MBB.end() && MBBI->getFlag(MachineInstr::FrameSetup) && + !MBBI->isCFIInstruction()) ++MBBI; // Determine the correct frame layout determineFrameLayout(MF); - const auto &CSI = MFI.getCalleeSavedInfo(); + const auto &CSI = MFI.getCSInfoPerSave(&MBB); // If libcalls are used to spill and restore callee-saved registers, the frame // has two sections; the opaque section managed by the libcalls, and the @@ -728,11 +773,10 @@ void RISCVFrameLowering::emitPrologue(MachineFunction &MF, // to the stack, not before. // FIXME: assumes exactly one instruction is used to save each callee-saved // register. - std::advance(MBBI, getUnmanagedCSI(MF, CSI).size()); - - // Iterate over list of callee-saved registers and emit .cfi_offset - // directives. - emitCFIForCSI(MBB, MBBI, getUnmanagedCSI(MF, CSI)); + int Distance = getUnmanagedCSI(MF, CSI).size(); + if (!RVFI->isPushable(MF) && !RVFI->useSaveRestoreLibCalls(MF)) + Distance *= 2; + std::advance(MBBI, Distance); // Generate new FP. if (hasFP(MF)) { @@ -874,12 +918,14 @@ void RISCVFrameLowering::emitEpilogue(MachineFunction &MF, --MBBI; } - const auto &CSI = MFI.getCalleeSavedInfo(); + const auto &CSI = MFI.getCSInfoPerRestore(&MBB); // Skip to before the restores of scalar callee-saved registers // FIXME: assumes exactly one instruction is used to restore each // callee-saved register. - auto LastFrameDestroy = std::prev(MBBI, getUnmanagedCSI(MF, CSI).size()); + int Distance = getUnmanagedCSI(MF, CSI).size(); + auto LastFrameDestroy = std::prev(MBBI, Distance); + std::advance(MBBI, Distance); uint64_t FirstSPAdjustAmount = getFirstSPAdjustAmount(MF); uint64_t RealStackSize = FirstSPAdjustAmount ? FirstSPAdjustAmount @@ -973,9 +1019,6 @@ void RISCVFrameLowering::emitEpilogue(MachineFunction &MF, return; } - // Recover callee-saved registers. - emitCFIForCSI(MBB, MBBI, getUnmanagedCSI(MF, CSI)); - bool ApplyPop = RVFI->isPushable(MF) && MBBI != MBB.end() && MBBI->getOpcode() == RISCV::CM_POP; if (ApplyPop) { @@ -1607,6 +1650,8 @@ bool RISCVFrameLowering::assignCalleeSavedSpillSlots( int FrameIdx = MFI.CreateFixedSpillStackObject(Size, Offset); assert(FrameIdx < 0); CS.setFrameIdx(FrameIdx); + if (RISCVRegisterInfo::isRVVRegClass(RC)) + MFI.setStackID(FrameIdx, TargetStackID::ScalableVector); continue; } } @@ -1623,6 +1668,8 @@ bool RISCVFrameLowering::assignCalleeSavedSpillSlots( if ((unsigned)FrameIdx > MaxCSFrameIndex) MaxCSFrameIndex = FrameIdx; CS.setFrameIdx(FrameIdx); + if (RISCVRegisterInfo::isRVVRegClass(RC)) + MFI.setStackID(FrameIdx, TargetStackID::ScalableVector); } // Allocate a fixed object that covers the full push or libcall size. @@ -1645,13 +1692,13 @@ bool RISCVFrameLowering::spillCalleeSavedRegisters( return true; MachineFunction *MF = MBB.getParent(); + auto *RVFI = MF->getInfo(); const TargetInstrInfo &TII = *MF->getSubtarget().getInstrInfo(); DebugLoc DL; if (MI != MBB.end() && !MI->isDebugInstr()) DL = MI->getDebugLoc(); // Emit CM.PUSH with base SPimm & evaluate Push stack - RISCVMachineFunctionInfo *RVFI = MF->getInfo(); if (RVFI->isPushable(*MF)) { unsigned PushedRegNum = RVFI->getRVPushRegs(); if (PushedRegNum > 0) { @@ -1691,6 +1738,11 @@ bool RISCVFrameLowering::spillCalleeSavedRegisters( } }; storeRegToStackSlot(UnmanagedCSI); + + // Iterate over list of callee-saved registers and emit .cfi_offset + // directives. + emitCFIForCSI(MBB, MI, UnmanagedCSI); + storeRegToStackSlot(RVVCSI); return true; @@ -1806,6 +1858,9 @@ bool RISCVFrameLowering::restoreCalleeSavedRegisters( loadRegFromStackSlot(RVVCSI); loadRegFromStackSlot(UnmanagedCSI); + // Recover callee-saved registers. + emitCFIForCSI(MBB, MI, UnmanagedCSI); + RISCVMachineFunctionInfo *RVFI = MF->getInfo(); if (RVFI->isPushable(*MF)) { int RegEnc = RVFI->getRVPushRlist(); @@ -1910,3 +1965,12 @@ bool RISCVFrameLowering::isSupportedStackID(TargetStackID::Value ID) const { TargetStackID::Value RISCVFrameLowering::getStackIDForScalableVectors() const { return TargetStackID::ScalableVector; } + +bool RISCVFrameLowering::enableCSRSaveRestorePointsSplit() const { + // Zcmp extention introduces cm.push and cm.pop instructions, which allow to + // perform all spills and restores in one corresponding instruction. This + // contradicts the idea of splitting Save Restore points. "-msave-restore" + // does the same, not via new instructions but via save/restore libcalls. + if (!STI.hasStdExtZcmp() && !STI.enableSaveRestore()) + return true; +} diff --git a/llvm/lib/Target/RISCV/RISCVFrameLowering.h b/llvm/lib/Target/RISCV/RISCVFrameLowering.h index ac0c805c744d6..d847dcbf7cbcc 100644 --- a/llvm/lib/Target/RISCV/RISCVFrameLowering.h +++ b/llvm/lib/Target/RISCV/RISCVFrameLowering.h @@ -28,6 +28,10 @@ class RISCVFrameLowering : public TargetFrameLowering { uint64_t getStackSizeWithRVVPadding(const MachineFunction &MF) const; + SmallVector + getUnmanagedCSI(const MachineFunction &MF, + const std::vector &CSI) const; + StackOffset getFrameIndexReference(const MachineFunction &MF, int FI, Register &FrameReg) const override; @@ -82,6 +86,8 @@ class RISCVFrameLowering : public TargetFrameLowering { MachineFunction &MF, StackOffset Offset, uint64_t RealStackSize, bool EmitCFI) const; + bool enableCSRSaveRestorePointsSplit() const override; + protected: const RISCVSubtarget &STI; diff --git a/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp b/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp index b9c70fe60fb50..f8eb702d230f9 100644 --- a/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp +++ b/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp @@ -473,12 +473,59 @@ bool RISCVRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II, MachineInstr &MI = *II; MachineFunction &MF = *MI.getParent()->getParent(); MachineRegisterInfo &MRI = MF.getRegInfo(); + const MachineFrameInfo &MFI = MF.getFrameInfo(); DebugLoc DL = MI.getDebugLoc(); int FrameIndex = MI.getOperand(FIOperandNum).getIndex(); Register FrameReg; StackOffset Offset = getFrameLowering(MF)->getFrameIndexReference(MF, FrameIndex, FrameReg); + + const auto &CSI = + getFrameLowering(MF)->getUnmanagedCSI(MF, MFI.getCalleeSavedInfo()); + + if (!CSI.empty()) { + int MinCSFI = CSI.front().getFrameIdx(); + int MaxCSFI = CSI.back().getFrameIdx(); + + // If our FrameIndex is CSI FrameIndex we in some cases need additional + // adjustment + if (FrameIndex >= MinCSFI && FrameIndex <= MaxCSFI) { + MachineBasicBlock *SpilledIn = nullptr; + MachineBasicBlock *RestoredIn = nullptr; + auto It = std::find_if(CSI.begin(), CSI.end(), [FrameIndex](auto &CS) { + return CS.getFrameIdx() == FrameIndex; + }); + + if (It != CSI.end()) { + if (MI.mayStore() && !It->spilledIn().empty()) + SpilledIn = *It->spilledIn().begin(); + + else if (MI.mayLoad() && !It->restoredIn().empty()) + RestoredIn = *It->restoredIn().begin(); + } + bool SpilledRestoredInPrologEpilog = true; + if (MI.mayStore() && !MFI.getSavePoints().empty() && SpilledIn) { + SpilledRestoredInPrologEpilog = + MFI.getSavePoint(SpilledIn).first == MFI.getProlog(); + } else if (MI.mayLoad() && !MFI.getRestorePoints().empty() && + RestoredIn) { + SpilledRestoredInPrologEpilog = + MFI.getRestorePoint(RestoredIn).first == MFI.getEpilog(); + } + + // For spills/restores performed not in Prolog/Epilog we need to add full + // SP offset, despite SPAdjusment optimization, because at the end of + // Prolog or at the start of Epilog SP has maximum offset + uint64_t FirstSPAdjustAmount = + getFrameLowering(MF)->getFirstSPAdjustAmount(MF); + if (FirstSPAdjustAmount && !SpilledRestoredInPrologEpilog) + Offset += StackOffset::getFixed( + getFrameLowering(MF)->getStackSizeWithRVVPadding(MF) - + FirstSPAdjustAmount); + } + } + bool IsRVVSpill = RISCV::isRVVSpill(MI); if (!IsRVVSpill) Offset += StackOffset::getFixed(MI.getOperand(FIOperandNum + 1).getImm()); diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/store-merging-debug.mir b/llvm/test/CodeGen/AArch64/GlobalISel/store-merging-debug.mir index d52ef0f3da74c..2e8f3c460b2fe 100644 --- a/llvm/test/CodeGen/AArch64/GlobalISel/store-merging-debug.mir +++ b/llvm/test/CodeGen/AArch64/GlobalISel/store-merging-debug.mir @@ -86,8 +86,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/AArch64/aarch64-ldst-no-premature-sp-pop.mir b/llvm/test/CodeGen/AArch64/aarch64-ldst-no-premature-sp-pop.mir index ba621cf77f9ae..07e80538e793f 100644 --- a/llvm/test/CodeGen/AArch64/aarch64-ldst-no-premature-sp-pop.mir +++ b/llvm/test/CodeGen/AArch64/aarch64-ldst-no-premature-sp-pop.mir @@ -59,8 +59,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 16 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, type: default, offset: -16, size: 16, diff --git a/llvm/test/CodeGen/AArch64/aarch64-mov-debug-locs.mir b/llvm/test/CodeGen/AArch64/aarch64-mov-debug-locs.mir index 16e2de751381a..31589a86599ff 100644 --- a/llvm/test/CodeGen/AArch64/aarch64-mov-debug-locs.mir +++ b/llvm/test/CodeGen/AArch64/aarch64-mov-debug-locs.mir @@ -157,8 +157,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -8, size: 8, alignment: 8, diff --git a/llvm/test/CodeGen/AArch64/aarch64st1.mir b/llvm/test/CodeGen/AArch64/aarch64st1.mir index 22a024d37bc64..439db1e97aa79 100644 --- a/llvm/test/CodeGen/AArch64/aarch64st1.mir +++ b/llvm/test/CodeGen/AArch64/aarch64st1.mir @@ -58,8 +58,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/AArch64/cfi-fixup-multi-block-prologue.mir b/llvm/test/CodeGen/AArch64/cfi-fixup-multi-block-prologue.mir index 31fa3832367be..6851fdba1239a 100644 --- a/llvm/test/CodeGen/AArch64/cfi-fixup-multi-block-prologue.mir +++ b/llvm/test/CodeGen/AArch64/cfi-fixup-multi-block-prologue.mir @@ -80,8 +80,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 30000 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: p, type: default, offset: -30016, size: 30000, alignment: 1, diff --git a/llvm/test/CodeGen/AArch64/cfi-fixup-multi-section.mir b/llvm/test/CodeGen/AArch64/cfi-fixup-multi-section.mir index a24972d138832..fe5c90a5e6dc5 100644 --- a/llvm/test/CodeGen/AArch64/cfi-fixup-multi-section.mir +++ b/llvm/test/CodeGen/AArch64/cfi-fixup-multi-section.mir @@ -47,8 +47,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -16, size: 8, alignment: 16, diff --git a/llvm/test/CodeGen/AArch64/cfi-fixup.mir b/llvm/test/CodeGen/AArch64/cfi-fixup.mir index f522df6bb3fa0..dd75cec7f6e0b 100644 --- a/llvm/test/CodeGen/AArch64/cfi-fixup.mir +++ b/llvm/test/CodeGen/AArch64/cfi-fixup.mir @@ -65,8 +65,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -16, size: 8, alignment: 16, @@ -248,8 +248,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -16, size: 8, alignment: 16, @@ -403,8 +403,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -16, size: 8, alignment: 16, diff --git a/llvm/test/CodeGen/AArch64/dont-shrink-wrap-stack-mayloadorstore.mir b/llvm/test/CodeGen/AArch64/dont-shrink-wrap-stack-mayloadorstore.mir index 1c4447bffd872..85f8abcbf7fe6 100644 --- a/llvm/test/CodeGen/AArch64/dont-shrink-wrap-stack-mayloadorstore.mir +++ b/llvm/test/CodeGen/AArch64/dont-shrink-wrap-stack-mayloadorstore.mir @@ -6,17 +6,23 @@ ; RUN: llc -x=mir -simplify-mir -run-pass=shrink-wrap -o - %s | FileCheck %s ; CHECK: name: compiler_pop_stack ; CHECK: frameInfo: - ; CHECK: savePoint: '%bb.1' - ; CHECK: restorePoint: '%bb.7' + ; CHECK: savePoints: + ; CHECK-NEXT: - point: '%bb.1' + ; CHECK: restorePoints: + ; CHECK-NEXT: - point: '%bb.7' ; CHECK: name: compiler_pop_stack_no_memoperands ; CHECK: frameInfo: - ; CHECK: savePoint: '%bb.1' - ; CHECK: restorePoint: '%bb.7' + ; CHECK: savePoints: + ; CHECK-NEXT: - point: '%bb.1' + ; CHECK: restorePoints: + ; CHECK-NEXT: - point: '%bb.7' ; CHECK: name: f ; CHECK: frameInfo: - ; CHECK: savePoint: '%bb.2' - ; CHECK-NEXT: restorePoint: '%bb.4' - ; CHECK-NEXT: stack: + ; CHECK: savePoints: + ; CHECK-NEXT: - point: '%bb.2' + ; CHECK: restorePoints: + ; CHECK-NEXT: - point: '%bb.4' + ; CHECK: stack: target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128" target triple = "aarch64" diff --git a/llvm/test/CodeGen/AArch64/early-ifcvt-regclass-mismatch.mir b/llvm/test/CodeGen/AArch64/early-ifcvt-regclass-mismatch.mir index a7f67f8b682c3..6324db0cb2c0f 100644 --- a/llvm/test/CodeGen/AArch64/early-ifcvt-regclass-mismatch.mir +++ b/llvm/test/CodeGen/AArch64/early-ifcvt-regclass-mismatch.mir @@ -105,8 +105,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/AArch64/emit_fneg_with_non_register_operand.mir b/llvm/test/CodeGen/AArch64/emit_fneg_with_non_register_operand.mir index f9878adfe5e44..3c98a1a128413 100644 --- a/llvm/test/CodeGen/AArch64/emit_fneg_with_non_register_operand.mir +++ b/llvm/test/CodeGen/AArch64/emit_fneg_with_non_register_operand.mir @@ -75,8 +75,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: true localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] entry_values: [] diff --git a/llvm/test/CodeGen/AArch64/irg-nomem.mir b/llvm/test/CodeGen/AArch64/irg-nomem.mir index 3b000fafbed46..78438151405e6 100644 --- a/llvm/test/CodeGen/AArch64/irg-nomem.mir +++ b/llvm/test/CodeGen/AArch64/irg-nomem.mir @@ -47,8 +47,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/AArch64/jump-table-duplicate.mir b/llvm/test/CodeGen/AArch64/jump-table-duplicate.mir index a2532a854923f..81cf5953895ca 100644 --- a/llvm/test/CodeGen/AArch64/jump-table-duplicate.mir +++ b/llvm/test/CodeGen/AArch64/jump-table-duplicate.mir @@ -92,8 +92,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -8, size: 8, alignment: 8, diff --git a/llvm/test/CodeGen/AArch64/ldst-nopreidx-sp-redzone.mir b/llvm/test/CodeGen/AArch64/ldst-nopreidx-sp-redzone.mir index f1f9e5fbc9b08..b431de2d9b35b 100644 --- a/llvm/test/CodeGen/AArch64/ldst-nopreidx-sp-redzone.mir +++ b/llvm/test/CodeGen/AArch64/ldst-nopreidx-sp-redzone.mir @@ -103,8 +103,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 480 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: StackGuardSlot, type: default, offset: -40, size: 8, @@ -216,8 +216,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 480 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: StackGuardSlot, type: default, offset: -40, size: 8, @@ -327,8 +327,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 480 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: StackGuardSlot, type: default, offset: -40, size: 8, diff --git a/llvm/test/CodeGen/AArch64/live-debugvalues-sve.mir b/llvm/test/CodeGen/AArch64/live-debugvalues-sve.mir index 612453ab53f43..86367ef82d57e 100644 --- a/llvm/test/CodeGen/AArch64/live-debugvalues-sve.mir +++ b/llvm/test/CodeGen/AArch64/live-debugvalues-sve.mir @@ -120,8 +120,18 @@ frameInfo: adjustsStack: true hasCalls: true maxCallFrameSize: 0 - savePoint: '%bb.1' - restorePoint: '%bb.1' + savePoints: + - point: '%bb.1' + registers: + - '$fp' + - '$lr' + - '$x28' + restorePoints: + - point: '%bb.1' + registers: + - '$fp' + - '$lr' + - '$x28' stack: - { id: 0, size: 16, alignment: 16, stack-id: scalable-vector } machineFunctionInfo: {} diff --git a/llvm/test/CodeGen/AArch64/loop-sink-limit.mir b/llvm/test/CodeGen/AArch64/loop-sink-limit.mir index 3e18f95cab848..76e1892d33f43 100644 --- a/llvm/test/CodeGen/AArch64/loop-sink-limit.mir +++ b/llvm/test/CodeGen/AArch64/loop-sink-limit.mir @@ -79,8 +79,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/AArch64/loop-sink.mir b/llvm/test/CodeGen/AArch64/loop-sink.mir index 36d39ffbadc29..b4ebb0b466b2f 100644 --- a/llvm/test/CodeGen/AArch64/loop-sink.mir +++ b/llvm/test/CodeGen/AArch64/loop-sink.mir @@ -299,8 +299,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] @@ -547,8 +547,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] @@ -674,8 +674,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] @@ -804,8 +804,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] @@ -944,8 +944,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] @@ -1070,8 +1070,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] @@ -1211,8 +1211,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] @@ -1358,8 +1358,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/AArch64/machine-latecleanup-inlineasm.mir b/llvm/test/CodeGen/AArch64/machine-latecleanup-inlineasm.mir index 9a8e5c6341bca..fa6da9e0e26bf 100644 --- a/llvm/test/CodeGen/AArch64/machine-latecleanup-inlineasm.mir +++ b/llvm/test/CodeGen/AArch64/machine-latecleanup-inlineasm.mir @@ -90,8 +90,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -8, size: 8, alignment: 8, diff --git a/llvm/test/CodeGen/AArch64/nested-iv-regalloc.mir b/llvm/test/CodeGen/AArch64/nested-iv-regalloc.mir index ff29c78b5a0ce..6f1d884fbb6fd 100644 --- a/llvm/test/CodeGen/AArch64/nested-iv-regalloc.mir +++ b/llvm/test/CodeGen/AArch64/nested-iv-regalloc.mir @@ -189,8 +189,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] entry_values: [] diff --git a/llvm/test/CodeGen/AArch64/regalloc-last-chance-recolor-with-split.mir b/llvm/test/CodeGen/AArch64/regalloc-last-chance-recolor-with-split.mir index 9bd3ad9165cee..cc0c6753b50d5 100644 --- a/llvm/test/CodeGen/AArch64/regalloc-last-chance-recolor-with-split.mir +++ b/llvm/test/CodeGen/AArch64/regalloc-last-chance-recolor-with-split.mir @@ -257,8 +257,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/AArch64/shrinkwrap-split-restore-point.mir b/llvm/test/CodeGen/AArch64/shrinkwrap-split-restore-point.mir index 5b43dde0ae250..ce3e6cefe82c6 100644 --- a/llvm/test/CodeGen/AArch64/shrinkwrap-split-restore-point.mir +++ b/llvm/test/CodeGen/AArch64/shrinkwrap-split-restore-point.mir @@ -708,8 +708,8 @@ registers: [] liveins: - { reg: '$w0', virtual-reg: '' } frameInfo: - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] body: | ; CHECK-LABEL: name: noshrink_bb_as_inlineasmbr_target ; CHECK: bb.0.entry: diff --git a/llvm/test/CodeGen/AArch64/sink-and-fold-drop-dbg.mir b/llvm/test/CodeGen/AArch64/sink-and-fold-drop-dbg.mir index b0280f268f3ff..56fbe8d7ff22e 100644 --- a/llvm/test/CodeGen/AArch64/sink-and-fold-drop-dbg.mir +++ b/llvm/test/CodeGen/AArch64/sink-and-fold-drop-dbg.mir @@ -99,8 +99,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: true localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] entry_values: [] diff --git a/llvm/test/CodeGen/AArch64/sink-and-fold-illegal-shift.mir b/llvm/test/CodeGen/AArch64/sink-and-fold-illegal-shift.mir index d2f6a3ab1aeeb..7698942de2277 100644 --- a/llvm/test/CodeGen/AArch64/sink-and-fold-illegal-shift.mir +++ b/llvm/test/CodeGen/AArch64/sink-and-fold-illegal-shift.mir @@ -65,8 +65,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] entry_values: [] diff --git a/llvm/test/CodeGen/AArch64/sink-and-fold-preserve-debugloc.mir b/llvm/test/CodeGen/AArch64/sink-and-fold-preserve-debugloc.mir index be5737d297b29..e209c56732f02 100644 --- a/llvm/test/CodeGen/AArch64/sink-and-fold-preserve-debugloc.mir +++ b/llvm/test/CodeGen/AArch64/sink-and-fold-preserve-debugloc.mir @@ -115,8 +115,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] entry_values: [] @@ -187,8 +187,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] entry_values: [] diff --git a/llvm/test/CodeGen/AArch64/split-deadloop.mir b/llvm/test/CodeGen/AArch64/split-deadloop.mir index d5f8303ab13ec..d90259a37d8ea 100644 --- a/llvm/test/CodeGen/AArch64/split-deadloop.mir +++ b/llvm/test/CodeGen/AArch64/split-deadloop.mir @@ -66,8 +66,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] entry_values: [] diff --git a/llvm/test/CodeGen/AArch64/stack-probing-last-in-block.mir b/llvm/test/CodeGen/AArch64/stack-probing-last-in-block.mir index 6c8ec7e4c4fa9..62d73c2c0d1bb 100644 --- a/llvm/test/CodeGen/AArch64/stack-probing-last-in-block.mir +++ b/llvm/test/CodeGen/AArch64/stack-probing-last-in-block.mir @@ -65,8 +65,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 200000 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: p, type: default, offset: 0, size: 200000, alignment: 4, diff --git a/llvm/test/CodeGen/AArch64/tail-dup-redundant-phi.mir b/llvm/test/CodeGen/AArch64/tail-dup-redundant-phi.mir index bc141ff5084ca..19fd53d4ddfaa 100644 --- a/llvm/test/CodeGen/AArch64/tail-dup-redundant-phi.mir +++ b/llvm/test/CodeGen/AArch64/tail-dup-redundant-phi.mir @@ -172,8 +172,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/AArch64/taildup-addrtaken.mir b/llvm/test/CodeGen/AArch64/taildup-addrtaken.mir index 5acebceff291d..e09aed220f523 100644 --- a/llvm/test/CodeGen/AArch64/taildup-addrtaken.mir +++ b/llvm/test/CodeGen/AArch64/taildup-addrtaken.mir @@ -75,8 +75,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/AArch64/wineh-frame-predecrement.mir b/llvm/test/CodeGen/AArch64/wineh-frame-predecrement.mir index 1bed8f6b547a2..c9decd0f98ad5 100644 --- a/llvm/test/CodeGen/AArch64/wineh-frame-predecrement.mir +++ b/llvm/test/CodeGen/AArch64/wineh-frame-predecrement.mir @@ -45,8 +45,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 4 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/AArch64/wineh-frame-scavenge.mir b/llvm/test/CodeGen/AArch64/wineh-frame-scavenge.mir index 09799ee266491..ba0458923f18f 100644 --- a/llvm/test/CodeGen/AArch64/wineh-frame-scavenge.mir +++ b/llvm/test/CodeGen/AArch64/wineh-frame-scavenge.mir @@ -61,8 +61,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 4 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/AArch64/wineh-frame1.mir b/llvm/test/CodeGen/AArch64/wineh-frame1.mir index 37a0394415a31..ed77d8c120614 100644 --- a/llvm/test/CodeGen/AArch64/wineh-frame1.mir +++ b/llvm/test/CodeGen/AArch64/wineh-frame1.mir @@ -64,8 +64,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/AArch64/wineh-frame2.mir b/llvm/test/CodeGen/AArch64/wineh-frame2.mir index ca785b93b9714..04da26f39ae4c 100644 --- a/llvm/test/CodeGen/AArch64/wineh-frame2.mir +++ b/llvm/test/CodeGen/AArch64/wineh-frame2.mir @@ -52,8 +52,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/AArch64/wineh-frame3.mir b/llvm/test/CodeGen/AArch64/wineh-frame3.mir index 30d804eeb8e54..8d14296a224ad 100644 --- a/llvm/test/CodeGen/AArch64/wineh-frame3.mir +++ b/llvm/test/CodeGen/AArch64/wineh-frame3.mir @@ -44,8 +44,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/AArch64/wineh-frame4.mir b/llvm/test/CodeGen/AArch64/wineh-frame4.mir index 73d30cab947ae..6430962c98c28 100644 --- a/llvm/test/CodeGen/AArch64/wineh-frame4.mir +++ b/llvm/test/CodeGen/AArch64/wineh-frame4.mir @@ -44,8 +44,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/AArch64/wineh-frame5.mir b/llvm/test/CodeGen/AArch64/wineh-frame5.mir index 180c20f0148f5..fd57e43aa74c6 100644 --- a/llvm/test/CodeGen/AArch64/wineh-frame5.mir +++ b/llvm/test/CodeGen/AArch64/wineh-frame5.mir @@ -96,8 +96,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 492 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: B, type: default, offset: 0, size: 492, alignment: 4, diff --git a/llvm/test/CodeGen/AArch64/wineh-frame6.mir b/llvm/test/CodeGen/AArch64/wineh-frame6.mir index 188a905a0ab75..4e17c0300de60 100644 --- a/llvm/test/CodeGen/AArch64/wineh-frame6.mir +++ b/llvm/test/CodeGen/AArch64/wineh-frame6.mir @@ -85,8 +85,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 24 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: c.addr, type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/AArch64/wineh-frame7.mir b/llvm/test/CodeGen/AArch64/wineh-frame7.mir index 6d44ad3716111..b0d43a5c94c19 100644 --- a/llvm/test/CodeGen/AArch64/wineh-frame7.mir +++ b/llvm/test/CodeGen/AArch64/wineh-frame7.mir @@ -101,8 +101,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 2993276 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: retval, type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/AArch64/wineh-frame8.mir b/llvm/test/CodeGen/AArch64/wineh-frame8.mir index be14dcd29c66d..aeec8ebf9f978 100644 --- a/llvm/test/CodeGen/AArch64/wineh-frame8.mir +++ b/llvm/test/CodeGen/AArch64/wineh-frame8.mir @@ -60,8 +60,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 8 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: a.addr, type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/AArch64/wineh-save-lrpair1.mir b/llvm/test/CodeGen/AArch64/wineh-save-lrpair1.mir index 7959ad611ed40..b1994bdc3f7d0 100644 --- a/llvm/test/CodeGen/AArch64/wineh-save-lrpair1.mir +++ b/llvm/test/CodeGen/AArch64/wineh-save-lrpair1.mir @@ -52,8 +52,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 4 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/AArch64/wineh-save-lrpair2.mir b/llvm/test/CodeGen/AArch64/wineh-save-lrpair2.mir index 2ec296f7b9e7e..91af4a76c73b3 100644 --- a/llvm/test/CodeGen/AArch64/wineh-save-lrpair2.mir +++ b/llvm/test/CodeGen/AArch64/wineh-save-lrpair2.mir @@ -45,8 +45,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 4 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/AArch64/wineh-save-lrpair3.mir b/llvm/test/CodeGen/AArch64/wineh-save-lrpair3.mir index e45cf9ff3e4c8..87822ceb6425d 100644 --- a/llvm/test/CodeGen/AArch64/wineh-save-lrpair3.mir +++ b/llvm/test/CodeGen/AArch64/wineh-save-lrpair3.mir @@ -46,8 +46,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 4 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/AArch64/wineh2.mir b/llvm/test/CodeGen/AArch64/wineh2.mir index 572df37bf2b51..2116cea890000 100644 --- a/llvm/test/CodeGen/AArch64/wineh2.mir +++ b/llvm/test/CodeGen/AArch64/wineh2.mir @@ -64,8 +64,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: spill-slot, offset: -8, size: 8, alignment: 8, diff --git a/llvm/test/CodeGen/AArch64/wineh3.mir b/llvm/test/CodeGen/AArch64/wineh3.mir index 395180ee540cd..08f8ad4a6caf3 100644 --- a/llvm/test/CodeGen/AArch64/wineh3.mir +++ b/llvm/test/CodeGen/AArch64/wineh3.mir @@ -52,8 +52,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: spill-slot, offset: -8, size: 8, alignment: 8, diff --git a/llvm/test/CodeGen/AArch64/wineh4.mir b/llvm/test/CodeGen/AArch64/wineh4.mir index baeb31167f096..2d03d6c2dad74 100644 --- a/llvm/test/CodeGen/AArch64/wineh4.mir +++ b/llvm/test/CodeGen/AArch64/wineh4.mir @@ -81,8 +81,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: spill-slot, offset: -8, size: 8, alignment: 8, diff --git a/llvm/test/CodeGen/AArch64/wineh5.mir b/llvm/test/CodeGen/AArch64/wineh5.mir index 053db98e6d39b..e1c27358ade24 100644 --- a/llvm/test/CodeGen/AArch64/wineh5.mir +++ b/llvm/test/CodeGen/AArch64/wineh5.mir @@ -110,8 +110,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 2993276 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: retval, type: default, offset: -36, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/AArch64/wineh6.mir b/llvm/test/CodeGen/AArch64/wineh6.mir index f3d5fc8921a57..a3fa7c2b89f48 100644 --- a/llvm/test/CodeGen/AArch64/wineh6.mir +++ b/llvm/test/CodeGen/AArch64/wineh6.mir @@ -54,8 +54,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 24 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: default, offset: -20, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/AArch64/wineh7.mir b/llvm/test/CodeGen/AArch64/wineh7.mir index ada4ebcf5057e..16ade9769ff3b 100644 --- a/llvm/test/CodeGen/AArch64/wineh7.mir +++ b/llvm/test/CodeGen/AArch64/wineh7.mir @@ -52,8 +52,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: variable-sized, offset: -48, diff --git a/llvm/test/CodeGen/AArch64/wineh8.mir b/llvm/test/CodeGen/AArch64/wineh8.mir index f1fad8b70ff27..c79fdbb28bca8 100644 --- a/llvm/test/CodeGen/AArch64/wineh8.mir +++ b/llvm/test/CodeGen/AArch64/wineh8.mir @@ -80,8 +80,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: spill-slot, offset: -8, size: 8, alignment: 8, diff --git a/llvm/test/CodeGen/AArch64/wineh9.mir b/llvm/test/CodeGen/AArch64/wineh9.mir index 3586ea5bc43b4..89eabfcb1bd5c 100644 --- a/llvm/test/CodeGen/AArch64/wineh9.mir +++ b/llvm/test/CodeGen/AArch64/wineh9.mir @@ -57,8 +57,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 8 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: x.addr, type: default, offset: -24, size: 8, alignment: 8, diff --git a/llvm/test/CodeGen/AArch64/wineh_shrinkwrap.mir b/llvm/test/CodeGen/AArch64/wineh_shrinkwrap.mir index aad271313c850..beda75559ec3a 100644 --- a/llvm/test/CodeGen/AArch64/wineh_shrinkwrap.mir +++ b/llvm/test/CodeGen/AArch64/wineh_shrinkwrap.mir @@ -102,8 +102,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 4000 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: A, type: default, offset: 0, size: 4000, alignment: 4, diff --git a/llvm/test/CodeGen/AMDGPU/memory-legalizer-multiple-mem-operands-nontemporal-1.mir b/llvm/test/CodeGen/AMDGPU/memory-legalizer-multiple-mem-operands-nontemporal-1.mir index 18df16988d8e4..a336e86509c0a 100644 --- a/llvm/test/CodeGen/AMDGPU/memory-legalizer-multiple-mem-operands-nontemporal-1.mir +++ b/llvm/test/CodeGen/AMDGPU/memory-legalizer-multiple-mem-operands-nontemporal-1.mir @@ -90,8 +90,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 4, alignment: 4, stack-id: default, isImmutable: false, isAliased: false, callee-saved-register: '' } diff --git a/llvm/test/CodeGen/AMDGPU/memory-legalizer-multiple-mem-operands-nontemporal-2.mir b/llvm/test/CodeGen/AMDGPU/memory-legalizer-multiple-mem-operands-nontemporal-2.mir index 9cc688dd0c532..820b5352f2c84 100644 --- a/llvm/test/CodeGen/AMDGPU/memory-legalizer-multiple-mem-operands-nontemporal-2.mir +++ b/llvm/test/CodeGen/AMDGPU/memory-legalizer-multiple-mem-operands-nontemporal-2.mir @@ -70,8 +70,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 4, alignment: 4, stack-id: default, isImmutable: false, isAliased: false, callee-saved-register: '' } diff --git a/llvm/test/CodeGen/ARM/cmse-vlldm-no-reorder.mir b/llvm/test/CodeGen/ARM/cmse-vlldm-no-reorder.mir index 29429fd5a23eb..60e4df1d482a3 100644 --- a/llvm/test/CodeGen/ARM/cmse-vlldm-no-reorder.mir +++ b/llvm/test/CodeGen/ARM/cmse-vlldm-no-reorder.mir @@ -55,8 +55,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/ARM/codesize-ifcvt.mir b/llvm/test/CodeGen/ARM/codesize-ifcvt.mir index 3acbcf127d8a3..200d4463e5c2b 100644 --- a/llvm/test/CodeGen/ARM/codesize-ifcvt.mir +++ b/llvm/test/CodeGen/ARM/codesize-ifcvt.mir @@ -142,8 +142,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -304,8 +304,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -472,8 +472,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/ARM/constant-island-movwt.mir b/llvm/test/CodeGen/ARM/constant-island-movwt.mir index 7b3e59eca8472..587d4b9562ab0 100644 --- a/llvm/test/CodeGen/ARM/constant-island-movwt.mir +++ b/llvm/test/CodeGen/ARM/constant-island-movwt.mir @@ -341,8 +341,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/ARM/constant-islands-cfg.mir b/llvm/test/CodeGen/ARM/constant-islands-cfg.mir index d85e7bf4bdeb3..dc1cb21ce8b62 100644 --- a/llvm/test/CodeGen/ARM/constant-islands-cfg.mir +++ b/llvm/test/CodeGen/ARM/constant-islands-cfg.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: body: | diff --git a/llvm/test/CodeGen/ARM/constant-islands-split-IT.mir b/llvm/test/CodeGen/ARM/constant-islands-split-IT.mir index 236cd34f7fba5..38a678421dfad 100644 --- a/llvm/test/CodeGen/ARM/constant-islands-split-IT.mir +++ b/llvm/test/CodeGen/ARM/constant-islands-split-IT.mir @@ -47,8 +47,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 28 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] callSites: [] constants: diff --git a/llvm/test/CodeGen/ARM/execute-only-save-cpsr.mir b/llvm/test/CodeGen/ARM/execute-only-save-cpsr.mir index 67e05218a4f19..b368ab000ad9f 100644 --- a/llvm/test/CodeGen/ARM/execute-only-save-cpsr.mir +++ b/llvm/test/CodeGen/ARM/execute-only-save-cpsr.mir @@ -118,8 +118,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 2052 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: var, type: default, offset: 0, size: 4, alignment: 4, @@ -204,8 +204,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 2052 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: var, type: default, offset: 0, size: 4, alignment: 4, @@ -296,8 +296,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 2052 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: var, type: default, offset: 0, size: 4, alignment: 4, @@ -388,8 +388,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 2052 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: var, type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/ARM/fp16-litpool2-arm.mir b/llvm/test/CodeGen/ARM/fp16-litpool2-arm.mir index bd343ebef26ad..c2cc420c637b4 100644 --- a/llvm/test/CodeGen/ARM/fp16-litpool2-arm.mir +++ b/llvm/test/CodeGen/ARM/fp16-litpool2-arm.mir @@ -61,8 +61,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: res, type: default, offset: -2, size: 2, alignment: 2, diff --git a/llvm/test/CodeGen/ARM/fp16-litpool3-arm.mir b/llvm/test/CodeGen/ARM/fp16-litpool3-arm.mir index 1f8e6b0ad4216..a093bc70295a6 100644 --- a/llvm/test/CodeGen/ARM/fp16-litpool3-arm.mir +++ b/llvm/test/CodeGen/ARM/fp16-litpool3-arm.mir @@ -62,8 +62,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: res, type: default, offset: -2, size: 2, alignment: 2, diff --git a/llvm/test/CodeGen/ARM/inlineasmbr-if-cvt.mir b/llvm/test/CodeGen/ARM/inlineasmbr-if-cvt.mir index ad45edc9835f5..16694cbeaa89b 100644 --- a/llvm/test/CodeGen/ARM/inlineasmbr-if-cvt.mir +++ b/llvm/test/CodeGen/ARM/inlineasmbr-if-cvt.mir @@ -69,8 +69,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/ARM/invalidated-save-point.ll b/llvm/test/CodeGen/ARM/invalidated-save-point.ll index bb602308a1793..0dc55b7efb02b 100644 --- a/llvm/test/CodeGen/ARM/invalidated-save-point.ll +++ b/llvm/test/CodeGen/ARM/invalidated-save-point.ll @@ -4,8 +4,8 @@ ; this point. Notably, if it isn't is will be invalid and reference a ; deleted block (%bb.-1.if.end) -; CHECK: savePoint: '' -; CHECK: restorePoint: '' +; CHECK: savePoints: [] +; CHECK: restorePoints: [] target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64" target triple = "thumbv7" diff --git a/llvm/test/CodeGen/ARM/jump-table-dbg-value.mir b/llvm/test/CodeGen/ARM/jump-table-dbg-value.mir index 413f5ef52929b..4c732378efcc5 100644 --- a/llvm/test/CodeGen/ARM/jump-table-dbg-value.mir +++ b/llvm/test/CodeGen/ARM/jump-table-dbg-value.mir @@ -98,8 +98,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/ARM/stack_frame_offset.mir b/llvm/test/CodeGen/ARM/stack_frame_offset.mir index e387e079aa20d..7474dda14e965 100644 --- a/llvm/test/CodeGen/ARM/stack_frame_offset.mir +++ b/llvm/test/CodeGen/ARM/stack_frame_offset.mir @@ -51,8 +51,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 4 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] stack: - { id: 0, name: a, type: default, offset: 0, size: 4, alignment: 4, stack-id: default, callee-saved-register: '', callee-saved-restored: true, @@ -103,8 +103,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 4 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] stack: - { id: 0, name: a, type: default, offset: 0, size: 4, alignment: 4, stack-id: default, callee-saved-register: '', callee-saved-restored: true, @@ -155,8 +155,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 4 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] stack: - { id: 0, name: a, type: default, offset: 0, size: 4, alignment: 4, stack-id: default, callee-saved-register: '', callee-saved-restored: true, diff --git a/llvm/test/CodeGen/Hexagon/cext-opt-block-addr.mir b/llvm/test/CodeGen/Hexagon/cext-opt-block-addr.mir index 9f140132dcd6c..17d4d6e15b195 100644 --- a/llvm/test/CodeGen/Hexagon/cext-opt-block-addr.mir +++ b/llvm/test/CodeGen/Hexagon/cext-opt-block-addr.mir @@ -76,8 +76,8 @@ frameInfo: hasTailCall: true isCalleeSavedInfoValid: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] entry_values: [] @@ -141,8 +141,8 @@ frameInfo: hasTailCall: false isCalleeSavedInfoValid: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] entry_values: [] diff --git a/llvm/test/CodeGen/Hexagon/early-if-predicator.mir b/llvm/test/CodeGen/Hexagon/early-if-predicator.mir index 1cb2f1e933731..dc817ee29c88f 100644 --- a/llvm/test/CodeGen/Hexagon/early-if-predicator.mir +++ b/llvm/test/CodeGen/Hexagon/early-if-predicator.mir @@ -53,8 +53,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/Hexagon/machine-sink-float-usr.mir b/llvm/test/CodeGen/Hexagon/machine-sink-float-usr.mir index 45621d98da3ef..e7fb29aebd37d 100644 --- a/llvm/test/CodeGen/Hexagon/machine-sink-float-usr.mir +++ b/llvm/test/CodeGen/Hexagon/machine-sink-float-usr.mir @@ -152,8 +152,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] @@ -228,8 +228,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: a, type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Hexagon/pipeliner/swp-phi-start.mir b/llvm/test/CodeGen/Hexagon/pipeliner/swp-phi-start.mir index 413d13d642db2..976c06f5a1cf5 100644 --- a/llvm/test/CodeGen/Hexagon/pipeliner/swp-phi-start.mir +++ b/llvm/test/CodeGen/Hexagon/pipeliner/swp-phi-start.mir @@ -100,8 +100,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/MIR/ARM/thumb2-sub-sp-t3.mir b/llvm/test/CodeGen/MIR/ARM/thumb2-sub-sp-t3.mir index e8e35ef2f4d49..ef4572ffc70ad 100644 --- a/llvm/test/CodeGen/MIR/ARM/thumb2-sub-sp-t3.mir +++ b/llvm/test/CodeGen/MIR/ARM/thumb2-sub-sp-t3.mir @@ -59,8 +59,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 4004 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: v, type: default, offset: 0, size: 4000, alignment: 1, diff --git a/llvm/test/CodeGen/MIR/Generic/frame-info.mir b/llvm/test/CodeGen/MIR/Generic/frame-info.mir index d5e014cf62991..ed7e32b99e6d2 100644 --- a/llvm/test/CodeGen/MIR/Generic/frame-info.mir +++ b/llvm/test/CodeGen/MIR/Generic/frame-info.mir @@ -46,8 +46,8 @@ tracksRegLiveness: true # CHECK-NEXT: hasTailCall: false # CHECK-NEXT: isCalleeSavedInfoValid: false # CHECK-NEXT: localFrameSize: 0 -# CHECK-NEXT: savePoint: '' -# CHECK-NEXT: restorePoint: '' +# CHECK-NEXT: savePoints: [] +# CHECK-NEXT: restorePoints: [] # CHECK: body frameInfo: maxAlignment: 4 diff --git a/llvm/test/CodeGen/MIR/Hexagon/addrmode-opt-nonreaching.mir b/llvm/test/CodeGen/MIR/Hexagon/addrmode-opt-nonreaching.mir index f6296d8ddf374..96e0925047378 100644 --- a/llvm/test/CodeGen/MIR/Hexagon/addrmode-opt-nonreaching.mir +++ b/llvm/test/CodeGen/MIR/Hexagon/addrmode-opt-nonreaching.mir @@ -127,8 +127,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/MIR/RISCV/machine-function-info.mir b/llvm/test/CodeGen/MIR/RISCV/machine-function-info.mir index 1861c61c30f63..585c63ffd08f7 100644 --- a/llvm/test/CodeGen/MIR/RISCV/machine-function-info.mir +++ b/llvm/test/CodeGen/MIR/RISCV/machine-function-info.mir @@ -58,8 +58,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: -8, size: 8, alignment: 8, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, diff --git a/llvm/test/CodeGen/MIR/X86/branch-folder-with-label.mir b/llvm/test/CodeGen/MIR/X86/branch-folder-with-label.mir index ce225d4567e91..9ef8ea720cb9d 100644 --- a/llvm/test/CodeGen/MIR/X86/branch-folder-with-label.mir +++ b/llvm/test/CodeGen/MIR/X86/branch-folder-with-label.mir @@ -172,8 +172,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -215,8 +215,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: spill-slot, offset: -16, size: 8, alignment: 16, stack-id: default, callee-saved-register: '$rbx', callee-saved-restored: true, debug-info-variable: '', @@ -289,8 +289,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: spill-slot, offset: -24, size: 8, alignment: 8, stack-id: default, callee-saved-register: '$rbx', callee-saved-restored: true, debug-info-variable: '', diff --git a/llvm/test/CodeGen/MIR/X86/diexpr-win32.mir b/llvm/test/CodeGen/MIR/X86/diexpr-win32.mir index b1bcf24f8c5f4..891b534faa797 100644 --- a/llvm/test/CodeGen/MIR/X86/diexpr-win32.mir +++ b/llvm/test/CodeGen/MIR/X86/diexpr-win32.mir @@ -174,8 +174,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: spill-slot, offset: -8, size: 4, alignment: 4, stack-id: default, callee-saved-register: '$esi' } @@ -232,8 +232,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 4, size: 4, alignment: 4, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '' } diff --git a/llvm/test/CodeGen/MIR/X86/fake-use-tailcall.mir b/llvm/test/CodeGen/MIR/X86/fake-use-tailcall.mir index 6c2cb0e55222b..5448d9604de4f 100644 --- a/llvm/test/CodeGen/MIR/X86/fake-use-tailcall.mir +++ b/llvm/test/CodeGen/MIR/X86/fake-use-tailcall.mir @@ -87,8 +87,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/MIR/X86/frame-info-save-restore-points.mir b/llvm/test/CodeGen/MIR/X86/frame-info-save-restore-points.mir index 0c68a3a3ed1a7..d1d22b52a39aa 100644 --- a/llvm/test/CodeGen/MIR/X86/frame-info-save-restore-points.mir +++ b/llvm/test/CodeGen/MIR/X86/frame-info-save-restore-points.mir @@ -30,14 +30,22 @@ liveins: - { reg: '$edi' } - { reg: '$esi' } # CHECK: frameInfo: -# CHECK: savePoint: '%bb.2' -# CHECK-NEXT: restorePoint: '%bb.2' +# CHECK: savePoints: +# CHECK-NEXT: - point: '%bb.2' +# CHECK-NEXT: registers: [] +# CHECK: restorePoints: +# CHECK-NEXT: - point: '%bb.2' +# CHECK-NEXT: registers: [] # CHECK: stack frameInfo: maxAlignment: 4 hasCalls: true - savePoint: '%bb.2' - restorePoint: '%bb.2' + savePoints: + - point: '%bb.2' + registers: [] + restorePoints: + - point: '%bb.2' + registers: [] stack: - { id: 0, name: tmp, offset: 0, size: 4, alignment: 4 } body: | diff --git a/llvm/test/CodeGen/MIR/X86/inline-asm-rm-exhaustion.mir b/llvm/test/CodeGen/MIR/X86/inline-asm-rm-exhaustion.mir index 6ca19aba1a65d..3503edd99f648 100644 --- a/llvm/test/CodeGen/MIR/X86/inline-asm-rm-exhaustion.mir +++ b/llvm/test/CodeGen/MIR/X86/inline-asm-rm-exhaustion.mir @@ -69,8 +69,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 4, alignment: 16, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, @@ -132,8 +132,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: default, offset: 0, size: 4, alignment: 4, @@ -200,8 +200,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 4, alignment: 16, stack-id: default, isImmutable: false, isAliased: false, callee-saved-register: '', diff --git a/llvm/test/CodeGen/Mips/delay-slot-filler-bundled-insts-def-use.mir b/llvm/test/CodeGen/Mips/delay-slot-filler-bundled-insts-def-use.mir index a86fcfe3920b4..3ac86e9f12e53 100644 --- a/llvm/test/CodeGen/Mips/delay-slot-filler-bundled-insts-def-use.mir +++ b/llvm/test/CodeGen/Mips/delay-slot-filler-bundled-insts-def-use.mir @@ -52,8 +52,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/Mips/delay-slot-filler-bundled-insts.mir b/llvm/test/CodeGen/Mips/delay-slot-filler-bundled-insts.mir index 9cde85bd211a9..ead6b17ab6820 100644 --- a/llvm/test/CodeGen/Mips/delay-slot-filler-bundled-insts.mir +++ b/llvm/test/CodeGen/Mips/delay-slot-filler-bundled-insts.mir @@ -72,8 +72,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -8, size: 8, alignment: 8, diff --git a/llvm/test/CodeGen/Mips/indirect-jump-hazard/guards-verify-call.mir b/llvm/test/CodeGen/Mips/indirect-jump-hazard/guards-verify-call.mir index fe72a1720fb01..63c82d6d191dd 100644 --- a/llvm/test/CodeGen/Mips/indirect-jump-hazard/guards-verify-call.mir +++ b/llvm/test/CodeGen/Mips/indirect-jump-hazard/guards-verify-call.mir @@ -41,8 +41,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/indirect-jump-hazard/guards-verify-tailcall.mir b/llvm/test/CodeGen/Mips/indirect-jump-hazard/guards-verify-tailcall.mir index e87af5892e34b..32ef337379ebe 100644 --- a/llvm/test/CodeGen/Mips/indirect-jump-hazard/guards-verify-tailcall.mir +++ b/llvm/test/CodeGen/Mips/indirect-jump-hazard/guards-verify-tailcall.mir @@ -42,8 +42,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dext-pos.mir b/llvm/test/CodeGen/Mips/instverify/dext-pos.mir index 02dd9085c31e8..8ffdf94bee326 100644 --- a/llvm/test/CodeGen/Mips/instverify/dext-pos.mir +++ b/llvm/test/CodeGen/Mips/instverify/dext-pos.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dext-size.mir b/llvm/test/CodeGen/Mips/instverify/dext-size.mir index 97cb085eac505..7272963ea6dc8 100644 --- a/llvm/test/CodeGen/Mips/instverify/dext-size.mir +++ b/llvm/test/CodeGen/Mips/instverify/dext-size.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dextm-pos-size.mir b/llvm/test/CodeGen/Mips/instverify/dextm-pos-size.mir index e76af1be9493f..0071abcedf981 100644 --- a/llvm/test/CodeGen/Mips/instverify/dextm-pos-size.mir +++ b/llvm/test/CodeGen/Mips/instverify/dextm-pos-size.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dextm-pos.mir b/llvm/test/CodeGen/Mips/instverify/dextm-pos.mir index 2649683824472..9ebdde174cab4 100644 --- a/llvm/test/CodeGen/Mips/instverify/dextm-pos.mir +++ b/llvm/test/CodeGen/Mips/instverify/dextm-pos.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dextm-size.mir b/llvm/test/CodeGen/Mips/instverify/dextm-size.mir index fc24a2756c6ab..eaa557076df5d 100644 --- a/llvm/test/CodeGen/Mips/instverify/dextm-size.mir +++ b/llvm/test/CodeGen/Mips/instverify/dextm-size.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dextu-pos-size.mir b/llvm/test/CodeGen/Mips/instverify/dextu-pos-size.mir index 7001221bb0db1..7bc97e235b784 100644 --- a/llvm/test/CodeGen/Mips/instverify/dextu-pos-size.mir +++ b/llvm/test/CodeGen/Mips/instverify/dextu-pos-size.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dextu-pos.mir b/llvm/test/CodeGen/Mips/instverify/dextu-pos.mir index b9e3b8c169e42..a3f11c0173bf6 100644 --- a/llvm/test/CodeGen/Mips/instverify/dextu-pos.mir +++ b/llvm/test/CodeGen/Mips/instverify/dextu-pos.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dextu-size-valid.mir b/llvm/test/CodeGen/Mips/instverify/dextu-size-valid.mir index 6663b96494ab9..3ec97a5e890df 100644 --- a/llvm/test/CodeGen/Mips/instverify/dextu-size-valid.mir +++ b/llvm/test/CodeGen/Mips/instverify/dextu-size-valid.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dextu-size.mir b/llvm/test/CodeGen/Mips/instverify/dextu-size.mir index 8407a7a836f76..d789c8e5dbe5c 100644 --- a/llvm/test/CodeGen/Mips/instverify/dextu-size.mir +++ b/llvm/test/CodeGen/Mips/instverify/dextu-size.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dins-pos-size.mir b/llvm/test/CodeGen/Mips/instverify/dins-pos-size.mir index d72837850cfbe..d131015dd42c9 100644 --- a/llvm/test/CodeGen/Mips/instverify/dins-pos-size.mir +++ b/llvm/test/CodeGen/Mips/instverify/dins-pos-size.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dins-pos.mir b/llvm/test/CodeGen/Mips/instverify/dins-pos.mir index 71d4242c948c1..f57b9dcbf921a 100644 --- a/llvm/test/CodeGen/Mips/instverify/dins-pos.mir +++ b/llvm/test/CodeGen/Mips/instverify/dins-pos.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dins-size.mir b/llvm/test/CodeGen/Mips/instverify/dins-size.mir index 35848a936e5c0..a8a719c17377e 100644 --- a/llvm/test/CodeGen/Mips/instverify/dins-size.mir +++ b/llvm/test/CodeGen/Mips/instverify/dins-size.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dinsm-pos-size.mir b/llvm/test/CodeGen/Mips/instverify/dinsm-pos-size.mir index a00d3cf715a79..32ddee19e0fe9 100644 --- a/llvm/test/CodeGen/Mips/instverify/dinsm-pos-size.mir +++ b/llvm/test/CodeGen/Mips/instverify/dinsm-pos-size.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dinsm-pos.mir b/llvm/test/CodeGen/Mips/instverify/dinsm-pos.mir index 0bbbdd2322459..8a05370d40847 100644 --- a/llvm/test/CodeGen/Mips/instverify/dinsm-pos.mir +++ b/llvm/test/CodeGen/Mips/instverify/dinsm-pos.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dinsm-size.mir b/llvm/test/CodeGen/Mips/instverify/dinsm-size.mir index c1f5f044bdeea..61aa7c11901da 100644 --- a/llvm/test/CodeGen/Mips/instverify/dinsm-size.mir +++ b/llvm/test/CodeGen/Mips/instverify/dinsm-size.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dinsu-pos-size.mir b/llvm/test/CodeGen/Mips/instverify/dinsu-pos-size.mir index 9f9953a855658..30e71b6bb22af 100644 --- a/llvm/test/CodeGen/Mips/instverify/dinsu-pos-size.mir +++ b/llvm/test/CodeGen/Mips/instverify/dinsu-pos-size.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dinsu-pos.mir b/llvm/test/CodeGen/Mips/instverify/dinsu-pos.mir index 12e999d5d488f..2498d35867a7d 100644 --- a/llvm/test/CodeGen/Mips/instverify/dinsu-pos.mir +++ b/llvm/test/CodeGen/Mips/instverify/dinsu-pos.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/dinsu-size.mir b/llvm/test/CodeGen/Mips/instverify/dinsu-size.mir index f204a3373f76f..2443f4ee94e6c 100644 --- a/llvm/test/CodeGen/Mips/instverify/dinsu-size.mir +++ b/llvm/test/CodeGen/Mips/instverify/dinsu-size.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/ext-pos-size.mir b/llvm/test/CodeGen/Mips/instverify/ext-pos-size.mir index c7b16fd50ab0e..f1a851835933f 100644 --- a/llvm/test/CodeGen/Mips/instverify/ext-pos-size.mir +++ b/llvm/test/CodeGen/Mips/instverify/ext-pos-size.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/ext-pos.mir b/llvm/test/CodeGen/Mips/instverify/ext-pos.mir index ce2abeb3cdcf4..fb1d875346574 100644 --- a/llvm/test/CodeGen/Mips/instverify/ext-pos.mir +++ b/llvm/test/CodeGen/Mips/instverify/ext-pos.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/ext-size.mir b/llvm/test/CodeGen/Mips/instverify/ext-size.mir index 57737ea60283d..8e587e9c92fa3 100644 --- a/llvm/test/CodeGen/Mips/instverify/ext-size.mir +++ b/llvm/test/CodeGen/Mips/instverify/ext-size.mir @@ -32,8 +32,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/ins-pos-size.mir b/llvm/test/CodeGen/Mips/instverify/ins-pos-size.mir index 1e48f1e8a236c..bdd9b96727c3f 100644 --- a/llvm/test/CodeGen/Mips/instverify/ins-pos-size.mir +++ b/llvm/test/CodeGen/Mips/instverify/ins-pos-size.mir @@ -35,8 +35,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/ins-pos.mir b/llvm/test/CodeGen/Mips/instverify/ins-pos.mir index c72e6f5a3be30..e0170735e02da 100644 --- a/llvm/test/CodeGen/Mips/instverify/ins-pos.mir +++ b/llvm/test/CodeGen/Mips/instverify/ins-pos.mir @@ -35,8 +35,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/instverify/ins-size.mir b/llvm/test/CodeGen/Mips/instverify/ins-size.mir index 92319bd3ff8a6..6a53816bee3cc 100644 --- a/llvm/test/CodeGen/Mips/instverify/ins-size.mir +++ b/llvm/test/CodeGen/Mips/instverify/ins-size.mir @@ -35,8 +35,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-micromips.mir b/llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-micromips.mir index b686a5e8f1294..df76ff204773b 100644 --- a/llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-micromips.mir +++ b/llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-micromips.mir @@ -62,8 +62,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -162,8 +162,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-micromipsr6.mir b/llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-micromipsr6.mir index aa6dfed58d5a5..121ce28deedc1 100644 --- a/llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-micromipsr6.mir +++ b/llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-micromipsr6.mir @@ -62,8 +62,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -154,8 +154,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-mips.mir b/llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-mips.mir index 22625d726811a..d3892ae2daeeb 100644 --- a/llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-mips.mir +++ b/llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-mips.mir @@ -61,8 +61,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -165,8 +165,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-mipsr6.mir b/llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-mipsr6.mir index a16573fac3c58..b05ccb9e9c9bc 100644 --- a/llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-mipsr6.mir +++ b/llvm/test/CodeGen/Mips/longbranch/branch-limits-fp-mipsr6.mir @@ -63,8 +63,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -163,8 +163,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-microMIPS.mir b/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-microMIPS.mir index 9a85a50113b4a..5989298350f98 100644 --- a/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-microMIPS.mir +++ b/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-microMIPS.mir @@ -123,8 +123,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -214,8 +214,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -309,8 +309,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -404,8 +404,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -499,8 +499,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -594,8 +594,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -685,8 +685,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -780,8 +780,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-micromipsr6.mir b/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-micromipsr6.mir index 67ac46cbe5827..8f0cfbd4f2613 100644 --- a/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-micromipsr6.mir +++ b/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-micromipsr6.mir @@ -167,8 +167,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -254,8 +254,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -341,8 +341,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -428,8 +428,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -515,8 +515,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -602,8 +602,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -689,8 +689,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -776,8 +776,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -863,8 +863,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -950,8 +950,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1037,8 +1037,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1124,8 +1124,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-mips64.mir b/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-mips64.mir index 4f293b70075a2..3c0c7b6c9ccc0 100644 --- a/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-mips64.mir +++ b/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-mips64.mir @@ -107,8 +107,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -209,8 +209,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -311,8 +311,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -413,8 +413,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -515,8 +515,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -617,8 +617,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-mips64r6.mir b/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-mips64r6.mir index da4c0f0acd6d4..7ccf00edb2bab 100644 --- a/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-mips64r6.mir +++ b/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-mips64r6.mir @@ -179,8 +179,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -256,8 +256,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -333,8 +333,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -431,8 +431,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -529,8 +529,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -627,8 +627,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -725,8 +725,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -823,8 +823,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -921,8 +921,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1019,8 +1019,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1117,8 +1117,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1215,8 +1215,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-mipsr6.mir b/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-mipsr6.mir index bc110992c571e..6ce4dd8de1c99 100644 --- a/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-mipsr6.mir +++ b/llvm/test/CodeGen/Mips/longbranch/branch-limits-int-mipsr6.mir @@ -167,8 +167,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -254,8 +254,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -341,8 +341,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -428,8 +428,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -515,8 +515,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -602,8 +602,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -689,8 +689,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -776,8 +776,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -863,8 +863,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -950,8 +950,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1037,8 +1037,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1124,8 +1124,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/longbranch/branch-limits-int.mir b/llvm/test/CodeGen/Mips/longbranch/branch-limits-int.mir index 4174f3321dfea..76b366ef77ccb 100644 --- a/llvm/test/CodeGen/Mips/longbranch/branch-limits-int.mir +++ b/llvm/test/CodeGen/Mips/longbranch/branch-limits-int.mir @@ -101,8 +101,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -200,8 +200,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -299,8 +299,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -398,8 +398,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -497,8 +497,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -596,8 +596,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/longbranch/branch-limits-msa.mir b/llvm/test/CodeGen/Mips/longbranch/branch-limits-msa.mir index c83859bad0fcb..a115ddfcc3f67 100644 --- a/llvm/test/CodeGen/Mips/longbranch/branch-limits-msa.mir +++ b/llvm/test/CodeGen/Mips/longbranch/branch-limits-msa.mir @@ -248,8 +248,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -365,8 +365,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -479,8 +479,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -593,8 +593,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -704,8 +704,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -815,8 +815,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -932,8 +932,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1046,8 +1046,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1160,8 +1160,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1271,8 +1271,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/micromips-eva.mir b/llvm/test/CodeGen/Mips/micromips-eva.mir index 3851a6961e03f..04412ba8d50c2 100644 --- a/llvm/test/CodeGen/Mips/micromips-eva.mir +++ b/llvm/test/CodeGen/Mips/micromips-eva.mir @@ -91,8 +91,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -157,8 +157,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: z.addr, type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Mips/micromips-short-delay-slot.mir b/llvm/test/CodeGen/Mips/micromips-short-delay-slot.mir index 216fec6a7f6ef..6da159fdffee2 100644 --- a/llvm/test/CodeGen/Mips/micromips-short-delay-slot.mir +++ b/llvm/test/CodeGen/Mips/micromips-short-delay-slot.mir @@ -43,8 +43,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Mips/micromips-sizereduction/micromips-lwp-swp.mir b/llvm/test/CodeGen/Mips/micromips-sizereduction/micromips-lwp-swp.mir index 7ffdb409fd2b6..35a9ea6194e3a 100644 --- a/llvm/test/CodeGen/Mips/micromips-sizereduction/micromips-lwp-swp.mir +++ b/llvm/test/CodeGen/Mips/micromips-sizereduction/micromips-lwp-swp.mir @@ -44,8 +44,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -112,8 +112,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -180,8 +180,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -248,8 +248,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Mips/micromips-sizereduction/micromips-no-lwp-swp.mir b/llvm/test/CodeGen/Mips/micromips-sizereduction/micromips-no-lwp-swp.mir index 2b136a3ff499a..66b613cada54f 100644 --- a/llvm/test/CodeGen/Mips/micromips-sizereduction/micromips-no-lwp-swp.mir +++ b/llvm/test/CodeGen/Mips/micromips-sizereduction/micromips-no-lwp-swp.mir @@ -42,8 +42,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -101,8 +101,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -160,8 +160,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -219,8 +219,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Mips/mirparser/target-flags-pic-mxgot-tls.mir b/llvm/test/CodeGen/Mips/mirparser/target-flags-pic-mxgot-tls.mir index 6002705965cae..1e46c6950cf36 100644 --- a/llvm/test/CodeGen/Mips/mirparser/target-flags-pic-mxgot-tls.mir +++ b/llvm/test/CodeGen/Mips/mirparser/target-flags-pic-mxgot-tls.mir @@ -136,8 +136,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/mirparser/target-flags-pic-o32.mir b/llvm/test/CodeGen/Mips/mirparser/target-flags-pic-o32.mir index d9703c74fc5ce..a8e30391ce344 100644 --- a/llvm/test/CodeGen/Mips/mirparser/target-flags-pic-o32.mir +++ b/llvm/test/CodeGen/Mips/mirparser/target-flags-pic-o32.mir @@ -63,8 +63,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/mirparser/target-flags-pic.mir b/llvm/test/CodeGen/Mips/mirparser/target-flags-pic.mir index 803a2d701fae4..487cc961c5c97 100644 --- a/llvm/test/CodeGen/Mips/mirparser/target-flags-pic.mir +++ b/llvm/test/CodeGen/Mips/mirparser/target-flags-pic.mir @@ -63,8 +63,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/mirparser/target-flags-static-tls.mir b/llvm/test/CodeGen/Mips/mirparser/target-flags-static-tls.mir index 3cfa28aa7d4fe..61d8c053ef975 100644 --- a/llvm/test/CodeGen/Mips/mirparser/target-flags-static-tls.mir +++ b/llvm/test/CodeGen/Mips/mirparser/target-flags-static-tls.mir @@ -128,8 +128,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/msa/emergency-spill.mir b/llvm/test/CodeGen/Mips/msa/emergency-spill.mir index 2089464528661..a05f7228db925 100644 --- a/llvm/test/CodeGen/Mips/msa/emergency-spill.mir +++ b/llvm/test/CodeGen/Mips/msa/emergency-spill.mir @@ -97,8 +97,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: retval, type: default, offset: 0, size: 16, alignment: 16, diff --git a/llvm/test/CodeGen/Mips/sll-micromips-r6-encoding.mir b/llvm/test/CodeGen/Mips/sll-micromips-r6-encoding.mir index 45807b2e48b0d..c14f5119276af 100644 --- a/llvm/test/CodeGen/Mips/sll-micromips-r6-encoding.mir +++ b/llvm/test/CodeGen/Mips/sll-micromips-r6-encoding.mir @@ -33,8 +33,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/Mips/unaligned-memops-mapping.mir b/llvm/test/CodeGen/Mips/unaligned-memops-mapping.mir index df5ef982a19f7..e5560acf2bc1f 100644 --- a/llvm/test/CodeGen/Mips/unaligned-memops-mapping.mir +++ b/llvm/test/CodeGen/Mips/unaligned-memops-mapping.mir @@ -45,8 +45,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -91,8 +91,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/NVPTX/proxy-reg-erasure.mir b/llvm/test/CodeGen/NVPTX/proxy-reg-erasure.mir index 7f80d011901d3..9ca52541eb2b8 100644 --- a/llvm/test/CodeGen/NVPTX/proxy-reg-erasure.mir +++ b/llvm/test/CodeGen/NVPTX/proxy-reg-erasure.mir @@ -66,8 +66,8 @@ frameInfo: hasTailCall: false isCalleeSavedInfoValid: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] entry_values: [] diff --git a/llvm/test/CodeGen/PowerPC/DisableHoistingDueToBlockHotnessNoProfileData.mir b/llvm/test/CodeGen/PowerPC/DisableHoistingDueToBlockHotnessNoProfileData.mir index d3d3b194b3ce5..b204d9f60cced 100644 --- a/llvm/test/CodeGen/PowerPC/DisableHoistingDueToBlockHotnessNoProfileData.mir +++ b/llvm/test/CodeGen/PowerPC/DisableHoistingDueToBlockHotnessNoProfileData.mir @@ -123,8 +123,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/PowerPC/DisableHoistingDueToBlockHotnessProfileData.mir b/llvm/test/CodeGen/PowerPC/DisableHoistingDueToBlockHotnessProfileData.mir index e8ad54b9c6cd4..13997ef992d25 100644 --- a/llvm/test/CodeGen/PowerPC/DisableHoistingDueToBlockHotnessProfileData.mir +++ b/llvm/test/CodeGen/PowerPC/DisableHoistingDueToBlockHotnessProfileData.mir @@ -168,8 +168,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/PowerPC/NoCRFieldRedefWhenSpillingCRBIT.mir b/llvm/test/CodeGen/PowerPC/NoCRFieldRedefWhenSpillingCRBIT.mir index 41e21248a3f0e..ffd0cd78ca988 100644 --- a/llvm/test/CodeGen/PowerPC/NoCRFieldRedefWhenSpillingCRBIT.mir +++ b/llvm/test/CodeGen/PowerPC/NoCRFieldRedefWhenSpillingCRBIT.mir @@ -71,8 +71,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/PowerPC/alignlongjumptest.mir b/llvm/test/CodeGen/PowerPC/alignlongjumptest.mir index 314844a2f3bf8..593150c5b5f6b 100644 --- a/llvm/test/CodeGen/PowerPC/alignlongjumptest.mir +++ b/llvm/test/CodeGen/PowerPC/alignlongjumptest.mir @@ -43,8 +43,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/PowerPC/block-placement-1.mir b/llvm/test/CodeGen/PowerPC/block-placement-1.mir index f91ab630112ca..d8e9ffe601d4e 100644 --- a/llvm/test/CodeGen/PowerPC/block-placement-1.mir +++ b/llvm/test/CodeGen/PowerPC/block-placement-1.mir @@ -140,8 +140,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] @@ -186,8 +186,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: spill-slot, offset: -80, size: 8, alignment: 16, stack-id: default, callee-saved-register: '$x30', callee-saved-restored: true, debug-info-variable: '', diff --git a/llvm/test/CodeGen/PowerPC/block-placement.mir b/llvm/test/CodeGen/PowerPC/block-placement.mir index dab8dfbb7c37c..46f05495f3c65 100644 --- a/llvm/test/CodeGen/PowerPC/block-placement.mir +++ b/llvm/test/CodeGen/PowerPC/block-placement.mir @@ -111,8 +111,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/PowerPC/collapse-rotates.mir b/llvm/test/CodeGen/PowerPC/collapse-rotates.mir index 938b27f19d5ca..4fea03cf2aebb 100644 --- a/llvm/test/CodeGen/PowerPC/collapse-rotates.mir +++ b/llvm/test/CodeGen/PowerPC/collapse-rotates.mir @@ -45,8 +45,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/PowerPC/common-chain-aix32.ll b/llvm/test/CodeGen/PowerPC/common-chain-aix32.ll index 35ddcfd9ba6d6..a61d669b014b5 100644 --- a/llvm/test/CodeGen/PowerPC/common-chain-aix32.ll +++ b/llvm/test/CodeGen/PowerPC/common-chain-aix32.ll @@ -49,9 +49,9 @@ define i64 @two_chain_same_offset_succ_i32(ptr %p, i32 %offset, i32 %base1, i64 ; CHECK-NEXT: slwi r8, r4, 1 ; CHECK-NEXT: li r10, 0 ; CHECK-NEXT: li r11, 0 -; CHECK-NEXT: stw r30, -8(r1) # 4-byte Folded Spill -; CHECK-NEXT: add r8, r4, r8 ; CHECK-NEXT: stw r31, -4(r1) # 4-byte Folded Spill +; CHECK-NEXT: add r8, r4, r8 +; CHECK-NEXT: stw r30, -8(r1) # 4-byte Folded Spill ; CHECK-NEXT: add r9, r5, r8 ; CHECK-NEXT: add r5, r5, r4 ; CHECK-NEXT: add r8, r3, r5 @@ -84,8 +84,8 @@ define i64 @two_chain_same_offset_succ_i32(ptr %p, i32 %offset, i32 %base1, i64 ; CHECK-NEXT: crand 4*cr5+lt, eq, 4*cr1+lt ; CHECK-NEXT: bc 12, 4*cr5+lt, L..BB0_3 ; CHECK-NEXT: # %bb.5: -; CHECK-NEXT: lwz r31, -4(r1) # 4-byte Folded Reload ; CHECK-NEXT: lwz r30, -8(r1) # 4-byte Folded Reload +; CHECK-NEXT: lwz r31, -4(r1) # 4-byte Folded Reload ; CHECK-NEXT: mr r4, r5 ; CHECK-NEXT: blr ; CHECK-NEXT: L..BB0_6: diff --git a/llvm/test/CodeGen/PowerPC/common-chain.ll b/llvm/test/CodeGen/PowerPC/common-chain.ll index b71a360d1be12..bc6401d84cf25 100644 --- a/llvm/test/CodeGen/PowerPC/common-chain.ll +++ b/llvm/test/CodeGen/PowerPC/common-chain.ll @@ -426,11 +426,11 @@ define i64 @not_same_offset_fail(ptr %p, i64 %offset, i64 %base1, i64 %n) { ; CHECK-NEXT: cmpdi r6, 0 ; CHECK-NEXT: ble cr0, .LBB4_4 ; CHECK-NEXT: # %bb.1: # %for.body.preheader -; CHECK-NEXT: std r28, -32(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r30, -16(r1) # 8-byte Folded Spill ; CHECK-NEXT: std r29, -24(r1) # 8-byte Folded Spill ; CHECK-NEXT: add r5, r3, r5 ; CHECK-NEXT: li r3, 0 -; CHECK-NEXT: std r30, -16(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r28, -32(r1) # 8-byte Folded Spill ; CHECK-NEXT: mtctr r6 ; CHECK-NEXT: mulli r11, r4, 10 ; CHECK-NEXT: sldi r8, r4, 2 @@ -455,9 +455,9 @@ define i64 @not_same_offset_fail(ptr %p, i64 %offset, i64 %base1, i64 %n) { ; CHECK-NEXT: maddld r3, r6, r28, r3 ; CHECK-NEXT: bdnz .LBB4_2 ; CHECK-NEXT: # %bb.3: -; CHECK-NEXT: ld r30, -16(r1) # 8-byte Folded Reload -; CHECK-NEXT: ld r29, -24(r1) # 8-byte Folded Reload ; CHECK-NEXT: ld r28, -32(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r29, -24(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r30, -16(r1) # 8-byte Folded Reload ; CHECK-NEXT: blr ; CHECK-NEXT: .LBB4_4: ; CHECK-NEXT: li r3, 0 diff --git a/llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs-R0-special-handling.mir b/llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs-R0-special-handling.mir index e1d028548803f..fa353ac1d3402 100644 --- a/llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs-R0-special-handling.mir +++ b/llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs-R0-special-handling.mir @@ -111,8 +111,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -165,8 +165,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -219,8 +219,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -272,8 +272,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -322,8 +322,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -370,8 +370,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -417,8 +417,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs-out-of-range.mir b/llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs-out-of-range.mir index cdd6be56b46d5..9a6974423e908 100644 --- a/llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs-out-of-range.mir +++ b/llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs-out-of-range.mir @@ -242,8 +242,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -292,8 +292,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -348,8 +348,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -411,8 +411,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -470,8 +470,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -528,8 +528,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -590,8 +590,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -648,8 +648,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -707,8 +707,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -765,8 +765,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -821,8 +821,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -876,8 +876,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -931,8 +931,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -986,8 +986,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1040,8 +1040,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1093,8 +1093,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1146,8 +1146,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1199,8 +1199,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1252,8 +1252,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1305,8 +1305,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs.mir b/llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs.mir index fa06dd551a0d4..d54eb31647274 100644 --- a/llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs.mir +++ b/llvm/test/CodeGen/PowerPC/convert-rr-to-ri-instrs.mir @@ -1044,8 +1044,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1100,8 +1100,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1160,8 +1160,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1221,8 +1221,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1280,8 +1280,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1335,8 +1335,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1385,8 +1385,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1439,8 +1439,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1494,8 +1494,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1548,8 +1548,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1602,8 +1602,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1655,8 +1655,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1708,8 +1708,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1762,8 +1762,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1818,8 +1818,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1877,8 +1877,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -1938,8 +1938,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -2002,8 +2002,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -2072,8 +2072,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -2149,8 +2149,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -2229,8 +2229,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -2306,8 +2306,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -2384,8 +2384,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -2461,8 +2461,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -2542,8 +2542,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -2621,8 +2621,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -2697,8 +2697,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -2772,8 +2772,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -2845,8 +2845,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -2920,8 +2920,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -2993,8 +2993,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -3077,8 +3077,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: default, offset: 0, size: 16, alignment: 16, @@ -3183,8 +3183,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -3256,8 +3256,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -3329,8 +3329,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -3402,8 +3402,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -3465,8 +3465,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -3515,8 +3515,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -3562,8 +3562,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -3608,8 +3608,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -3658,8 +3658,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -3713,8 +3713,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -3768,8 +3768,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -3823,8 +3823,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -3874,8 +3874,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -3920,8 +3920,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -3970,8 +3970,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4024,8 +4024,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4078,8 +4078,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4131,8 +4131,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4183,8 +4183,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4235,8 +4235,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4284,8 +4284,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4339,8 +4339,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4404,8 +4404,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4467,8 +4467,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4522,8 +4522,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4575,8 +4575,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4628,8 +4628,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4681,8 +4681,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4739,8 +4739,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4797,8 +4797,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4859,8 +4859,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4917,8 +4917,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -4976,8 +4976,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -5036,8 +5036,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -5091,8 +5091,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -5144,8 +5144,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -5209,8 +5209,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -5282,8 +5282,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -5357,8 +5357,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -5430,8 +5430,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -5505,8 +5505,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -5578,8 +5578,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -5652,8 +5652,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -5723,8 +5723,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -5794,8 +5794,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -5867,8 +5867,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -5938,8 +5938,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -6011,8 +6011,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -6074,8 +6074,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -6126,8 +6126,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -6178,8 +6178,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -6236,8 +6236,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -6297,8 +6297,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -6351,8 +6351,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -6401,8 +6401,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -6448,8 +6448,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -6494,8 +6494,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/PowerPC/ctrloop-do-not-duplicate-mi.mir b/llvm/test/CodeGen/PowerPC/ctrloop-do-not-duplicate-mi.mir index d8bd70acbfae4..39bb035034725 100644 --- a/llvm/test/CodeGen/PowerPC/ctrloop-do-not-duplicate-mi.mir +++ b/llvm/test/CodeGen/PowerPC/ctrloop-do-not-duplicate-mi.mir @@ -117,8 +117,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/PowerPC/livevars-crash2.mir b/llvm/test/CodeGen/PowerPC/livevars-crash2.mir index deaae3936cefb..e30c4e6ade9b1 100644 --- a/llvm/test/CodeGen/PowerPC/livevars-crash2.mir +++ b/llvm/test/CodeGen/PowerPC/livevars-crash2.mir @@ -136,8 +136,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/PowerPC/loop-instr-form-prepare.ll b/llvm/test/CodeGen/PowerPC/loop-instr-form-prepare.ll index cc38e250f183f..00627b8434beb 100644 --- a/llvm/test/CodeGen/PowerPC/loop-instr-form-prepare.ll +++ b/llvm/test/CodeGen/PowerPC/loop-instr-form-prepare.ll @@ -189,8 +189,8 @@ define i64 @test_max_number_reminder(ptr %arg, i32 signext %arg1) { ; CHECK-NEXT: cmplwi r4, 0 ; CHECK-NEXT: beq cr0, .LBB2_4 ; CHECK-NEXT: # %bb.1: # %bb3.preheader -; CHECK-NEXT: std r25, -56(r1) # 8-byte Folded Spill -; CHECK-NEXT: std r26, -48(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r30, -16(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r29, -24(r1) # 8-byte Folded Spill ; CHECK-NEXT: addi r10, r3, 4002 ; CHECK-NEXT: li r3, 0 ; CHECK-NEXT: li r5, -1 @@ -198,10 +198,10 @@ define i64 @test_max_number_reminder(ptr %arg, i32 signext %arg1) { ; CHECK-NEXT: li r7, 3 ; CHECK-NEXT: li r8, 5 ; CHECK-NEXT: li r9, 9 -; CHECK-NEXT: std r27, -40(r1) # 8-byte Folded Spill ; CHECK-NEXT: std r28, -32(r1) # 8-byte Folded Spill -; CHECK-NEXT: std r29, -24(r1) # 8-byte Folded Spill -; CHECK-NEXT: std r30, -16(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r27, -40(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r26, -48(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r25, -56(r1) # 8-byte Folded Spill ; CHECK-NEXT: mtctr r4 ; CHECK-NEXT: .p2align 4 ; CHECK-NEXT: .LBB2_2: # %bb3 @@ -226,13 +226,13 @@ define i64 @test_max_number_reminder(ptr %arg, i32 signext %arg1) { ; CHECK-NEXT: maddld r3, r11, r25, r3 ; CHECK-NEXT: bdnz .LBB2_2 ; CHECK-NEXT: # %bb.3: -; CHECK-NEXT: ld r30, -16(r1) # 8-byte Folded Reload -; CHECK-NEXT: ld r29, -24(r1) # 8-byte Folded Reload -; CHECK-NEXT: ld r28, -32(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r25, -56(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r26, -48(r1) # 8-byte Folded Reload ; CHECK-NEXT: ld r27, -40(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r28, -32(r1) # 8-byte Folded Reload ; CHECK-NEXT: add r3, r3, r4 -; CHECK-NEXT: ld r26, -48(r1) # 8-byte Folded Reload -; CHECK-NEXT: ld r25, -56(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r29, -24(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r30, -16(r1) # 8-byte Folded Reload ; CHECK-NEXT: blr ; CHECK-NEXT: .LBB2_4: ; CHECK-NEXT: addi r3, r4, 0 @@ -583,10 +583,10 @@ define i64 @test_ds_cross_basic_blocks(ptr %arg, i32 signext %arg1) { ; CHECK-NEXT: beq cr0, .LBB6_9 ; CHECK-NEXT: # %bb.1: # %bb3 ; CHECK-NEXT: addis r5, r2, .LC0@toc@ha -; CHECK-NEXT: std r28, -32(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r30, -16(r1) # 8-byte Folded Spill ; CHECK-NEXT: std r29, -24(r1) # 8-byte Folded Spill ; CHECK-NEXT: ld r5, .LC0@toc@l(r5) -; CHECK-NEXT: std r30, -16(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r28, -32(r1) # 8-byte Folded Spill ; CHECK-NEXT: addi r6, r3, 4009 ; CHECK-NEXT: li r3, 0 ; CHECK-NEXT: li r7, -7 @@ -649,9 +649,9 @@ define i64 @test_ds_cross_basic_blocks(ptr %arg, i32 signext %arg1) { ; CHECK-NEXT: add r4, r30, r4 ; CHECK-NEXT: b .LBB6_3 ; CHECK-NEXT: .LBB6_8: -; CHECK-NEXT: ld r30, -16(r1) # 8-byte Folded Reload -; CHECK-NEXT: ld r29, -24(r1) # 8-byte Folded Reload ; CHECK-NEXT: ld r28, -32(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r29, -24(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r30, -16(r1) # 8-byte Folded Reload ; CHECK-NEXT: blr ; CHECK-NEXT: .LBB6_9: ; CHECK-NEXT: li r3, 0 diff --git a/llvm/test/CodeGen/PowerPC/lsr-profitable-chain.ll b/llvm/test/CodeGen/PowerPC/lsr-profitable-chain.ll index 79f2ef3e3746a..3de0fe239021c 100644 --- a/llvm/test/CodeGen/PowerPC/lsr-profitable-chain.ll +++ b/llvm/test/CodeGen/PowerPC/lsr-profitable-chain.ll @@ -8,22 +8,22 @@ define void @foo(ptr readonly %0, ptr %1, i64 %2, i64 %3, i64 %4, i64 %5, i64 %6 ; CHECK-NEXT: cmpd 5, 7 ; CHECK-NEXT: bgelr 0 ; CHECK-NEXT: # %bb.1: # %.preheader -; CHECK-NEXT: std 27, -40(1) # 8-byte Folded Spill -; CHECK-NEXT: addi 27, 5, 2 -; CHECK-NEXT: std 28, -32(1) # 8-byte Folded Spill -; CHECK-NEXT: addi 28, 5, 3 ; CHECK-NEXT: std 30, -16(1) # 8-byte Folded Spill ; CHECK-NEXT: addi 30, 5, 1 +; CHECK-NEXT: std 28, -32(1) # 8-byte Folded Spill +; CHECK-NEXT: addi 28, 5, 3 +; CHECK-NEXT: std 27, -40(1) # 8-byte Folded Spill +; CHECK-NEXT: addi 27, 5, 2 ; CHECK-NEXT: mulld 12, 8, 5 ; CHECK-NEXT: mulld 0, 9, 8 ; CHECK-NEXT: std 29, -24(1) # 8-byte Folded Spill ; CHECK-NEXT: addi 29, 3, 16 ; CHECK-NEXT: sldi 11, 10, 3 -; CHECK-NEXT: std 22, -80(1) # 8-byte Folded Spill -; CHECK-NEXT: std 23, -72(1) # 8-byte Folded Spill -; CHECK-NEXT: std 24, -64(1) # 8-byte Folded Spill -; CHECK-NEXT: std 25, -56(1) # 8-byte Folded Spill ; CHECK-NEXT: std 26, -48(1) # 8-byte Folded Spill +; CHECK-NEXT: std 25, -56(1) # 8-byte Folded Spill +; CHECK-NEXT: std 24, -64(1) # 8-byte Folded Spill +; CHECK-NEXT: std 23, -72(1) # 8-byte Folded Spill +; CHECK-NEXT: std 22, -80(1) # 8-byte Folded Spill ; CHECK-NEXT: mulld 30, 8, 30 ; CHECK-NEXT: mulld 28, 8, 28 ; CHECK-NEXT: mulld 8, 8, 27 @@ -104,15 +104,15 @@ define void @foo(ptr readonly %0, ptr %1, i64 %2, i64 %3, i64 %4, i64 %5, i64 %6 ; CHECK-NEXT: blt 0, .LBB0_5 ; CHECK-NEXT: b .LBB0_2 ; CHECK-NEXT: .LBB0_6: -; CHECK-NEXT: ld 30, -16(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 29, -24(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 28, -32(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 27, -40(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 26, -48(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 25, -56(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 24, -64(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 23, -72(1) # 8-byte Folded Reload ; CHECK-NEXT: ld 22, -80(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 23, -72(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 24, -64(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 25, -56(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 26, -48(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 27, -40(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 28, -32(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 29, -24(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 30, -16(1) # 8-byte Folded Reload ; CHECK-NEXT: blr %9 = icmp slt i64 %2, %4 br i1 %9, label %10, label %97 diff --git a/llvm/test/CodeGen/PowerPC/more-dq-form-prepare.ll b/llvm/test/CodeGen/PowerPC/more-dq-form-prepare.ll index 9f62477ae01df..b6a10aaebdc82 100644 --- a/llvm/test/CodeGen/PowerPC/more-dq-form-prepare.ll +++ b/llvm/test/CodeGen/PowerPC/more-dq-form-prepare.ll @@ -56,39 +56,39 @@ define void @foo(ptr %.m, ptr %.n, ptr %.a, ptr %.x, ptr %.l, ptr %.vy01, ptr %. ; CHECK-NEXT: .cfi_offset v29, -240 ; CHECK-NEXT: .cfi_offset v30, -224 ; CHECK-NEXT: .cfi_offset v31, -208 -; CHECK-NEXT: std 22, 464(1) # 8-byte Folded Spill ; CHECK-NEXT: std 23, 472(1) # 8-byte Folded Spill +; CHECK-NEXT: std 22, 464(1) # 8-byte Folded Spill ; CHECK-NEXT: mr 22, 5 ; CHECK-NEXT: ld 5, 848(1) ; CHECK-NEXT: addi 3, 3, 1 ; CHECK-NEXT: mr 11, 7 ; CHECK-NEXT: ld 23, 688(1) ; CHECK-NEXT: ld 7, 728(1) -; CHECK-NEXT: std 18, 432(1) # 8-byte Folded Spill ; CHECK-NEXT: std 19, 440(1) # 8-byte Folded Spill +; CHECK-NEXT: std 18, 432(1) # 8-byte Folded Spill ; CHECK-NEXT: mr 18, 6 ; CHECK-NEXT: li 6, 9 ; CHECK-NEXT: ld 19, 768(1) ; CHECK-NEXT: ld 2, 760(1) -; CHECK-NEXT: std 26, 496(1) # 8-byte Folded Spill ; CHECK-NEXT: std 27, 504(1) # 8-byte Folded Spill +; CHECK-NEXT: std 26, 496(1) # 8-byte Folded Spill ; CHECK-NEXT: cmpldi 3, 9 ; CHECK-NEXT: ld 27, 816(1) ; CHECK-NEXT: ld 26, 808(1) -; CHECK-NEXT: std 14, 400(1) # 8-byte Folded Spill ; CHECK-NEXT: std 15, 408(1) # 8-byte Folded Spill +; CHECK-NEXT: std 14, 400(1) # 8-byte Folded Spill ; CHECK-NEXT: ld 15, 736(1) ; CHECK-NEXT: lxv 39, 0(8) -; CHECK-NEXT: std 30, 528(1) # 8-byte Folded Spill ; CHECK-NEXT: std 31, 536(1) # 8-byte Folded Spill +; CHECK-NEXT: std 30, 528(1) # 8-byte Folded Spill ; CHECK-NEXT: ld 30, 704(1) ; CHECK-NEXT: lxv 38, 0(9) -; CHECK-NEXT: std 20, 448(1) # 8-byte Folded Spill ; CHECK-NEXT: std 21, 456(1) # 8-byte Folded Spill +; CHECK-NEXT: std 20, 448(1) # 8-byte Folded Spill ; CHECK-NEXT: ld 21, 784(1) ; CHECK-NEXT: ld 20, 776(1) -; CHECK-NEXT: std 24, 480(1) # 8-byte Folded Spill ; CHECK-NEXT: std 25, 488(1) # 8-byte Folded Spill +; CHECK-NEXT: std 24, 480(1) # 8-byte Folded Spill ; CHECK-NEXT: iselgt 3, 3, 6 ; CHECK-NEXT: ld 6, 720(1) ; CHECK-NEXT: ld 24, 792(1) @@ -112,14 +112,14 @@ define void @foo(ptr %.m, ptr %.n, ptr %.a, ptr %.x, ptr %.l, ptr %.vy01, ptr %. ; CHECK-NEXT: lxv 33, 0(10) ; CHECK-NEXT: lxv 32, 0(23) ; CHECK-NEXT: lxv 36, 0(30) -; CHECK-NEXT: std 16, 416(1) # 8-byte Folded Spill -; CHECK-NEXT: std 17, 424(1) # 8-byte Folded Spill -; CHECK-NEXT: ld 17, 752(1) -; CHECK-NEXT: ld 16, 744(1) -; CHECK-NEXT: std 28, 512(1) # 8-byte Folded Spill ; CHECK-NEXT: std 29, 520(1) # 8-byte Folded Spill +; CHECK-NEXT: std 28, 512(1) # 8-byte Folded Spill ; CHECK-NEXT: ld 29, 712(1) ; CHECK-NEXT: ld 28, 696(1) +; CHECK-NEXT: std 17, 424(1) # 8-byte Folded Spill +; CHECK-NEXT: std 16, 416(1) # 8-byte Folded Spill +; CHECK-NEXT: ld 17, 752(1) +; CHECK-NEXT: ld 16, 744(1) ; CHECK-NEXT: std 8, 56(1) # 8-byte Folded Spill ; CHECK-NEXT: std 9, 64(1) # 8-byte Folded Spill ; CHECK-NEXT: lxv 37, 0(28) @@ -132,33 +132,33 @@ define void @foo(ptr %.m, ptr %.n, ptr %.a, ptr %.x, ptr %.l, ptr %.vy01, ptr %. ; CHECK-NEXT: lxv 10, 0(15) ; CHECK-NEXT: lxv 9, 0(16) ; CHECK-NEXT: li 28, 1 -; CHECK-NEXT: stfd 26, 544(1) # 8-byte Folded Spill -; CHECK-NEXT: stfd 27, 552(1) # 8-byte Folded Spill +; CHECK-NEXT: stxv 63, 384(1) # 16-byte Folded Spill +; CHECK-NEXT: stxv 62, 368(1) # 16-byte Folded Spill ; CHECK-NEXT: lxv 8, 0(17) ; CHECK-NEXT: lxv 7, 0(2) -; CHECK-NEXT: stfd 28, 560(1) # 8-byte Folded Spill -; CHECK-NEXT: stfd 29, 568(1) # 8-byte Folded Spill +; CHECK-NEXT: stxv 61, 352(1) # 16-byte Folded Spill +; CHECK-NEXT: stxv 60, 336(1) # 16-byte Folded Spill ; CHECK-NEXT: lxv 5, 0(20) ; CHECK-NEXT: lxv 3, 0(24) -; CHECK-NEXT: stfd 30, 576(1) # 8-byte Folded Spill -; CHECK-NEXT: stfd 31, 584(1) # 8-byte Folded Spill +; CHECK-NEXT: stxv 59, 320(1) # 16-byte Folded Spill +; CHECK-NEXT: stxv 58, 304(1) # 16-byte Folded Spill ; CHECK-NEXT: lxv 2, 0(25) ; CHECK-NEXT: lxv 1, 0(26) -; CHECK-NEXT: stxv 52, 208(1) # 16-byte Folded Spill -; CHECK-NEXT: stxv 53, 224(1) # 16-byte Folded Spill +; CHECK-NEXT: stxv 57, 288(1) # 16-byte Folded Spill +; CHECK-NEXT: stxv 56, 272(1) # 16-byte Folded Spill ; CHECK-NEXT: lxv 0, 0(27) -; CHECK-NEXT: stxv 54, 240(1) # 16-byte Folded Spill ; CHECK-NEXT: stxv 55, 256(1) # 16-byte Folded Spill -; CHECK-NEXT: stxv 56, 272(1) # 16-byte Folded Spill -; CHECK-NEXT: stxv 57, 288(1) # 16-byte Folded Spill -; CHECK-NEXT: stxv 58, 304(1) # 16-byte Folded Spill +; CHECK-NEXT: stxv 54, 240(1) # 16-byte Folded Spill +; CHECK-NEXT: stxv 53, 224(1) # 16-byte Folded Spill +; CHECK-NEXT: stxv 52, 208(1) # 16-byte Folded Spill +; CHECK-NEXT: stfd 31, 584(1) # 8-byte Folded Spill +; CHECK-NEXT: stfd 30, 576(1) # 8-byte Folded Spill ; CHECK-NEXT: std 5, 192(1) # 8-byte Folded Spill ; CHECK-NEXT: ld 5, 832(1) -; CHECK-NEXT: stxv 59, 320(1) # 16-byte Folded Spill -; CHECK-NEXT: stxv 60, 336(1) # 16-byte Folded Spill -; CHECK-NEXT: stxv 61, 352(1) # 16-byte Folded Spill -; CHECK-NEXT: stxv 62, 368(1) # 16-byte Folded Spill -; CHECK-NEXT: stxv 63, 384(1) # 16-byte Folded Spill +; CHECK-NEXT: stfd 29, 568(1) # 8-byte Folded Spill +; CHECK-NEXT: stfd 28, 560(1) # 8-byte Folded Spill +; CHECK-NEXT: stfd 27, 552(1) # 8-byte Folded Spill +; CHECK-NEXT: stfd 26, 544(1) # 8-byte Folded Spill ; CHECK-NEXT: std 15, 88(1) # 8-byte Folded Spill ; CHECK-NEXT: std 16, 96(1) # 8-byte Folded Spill ; CHECK-NEXT: std 17, 104(1) # 8-byte Folded Spill @@ -270,53 +270,53 @@ define void @foo(ptr %.m, ptr %.n, ptr %.a, ptr %.x, ptr %.l, ptr %.vy01, ptr %. ; CHECK-NEXT: ble 0, .LBB0_3 ; CHECK-NEXT: # %bb.6: # %_loop_1_loopHeader_._return_bb_crit_edge.loopexit ; CHECK-NEXT: ld 3, 56(1) # 8-byte Folded Reload -; CHECK-NEXT: lxv 63, 384(1) # 16-byte Folded Reload +; CHECK-NEXT: ld 14, 400(1) # 8-byte Folded Reload ; CHECK-NEXT: stxv 39, 0(3) ; CHECK-NEXT: ld 3, 64(1) # 8-byte Folded Reload -; CHECK-NEXT: lxv 62, 368(1) # 16-byte Folded Reload -; CHECK-NEXT: lxv 61, 352(1) # 16-byte Folded Reload -; CHECK-NEXT: lxv 60, 336(1) # 16-byte Folded Reload -; CHECK-NEXT: lxv 59, 320(1) # 16-byte Folded Reload -; CHECK-NEXT: lxv 58, 304(1) # 16-byte Folded Reload -; CHECK-NEXT: lxv 57, 288(1) # 16-byte Folded Reload -; CHECK-NEXT: lxv 56, 272(1) # 16-byte Folded Reload -; CHECK-NEXT: lxv 55, 256(1) # 16-byte Folded Reload -; CHECK-NEXT: lxv 54, 240(1) # 16-byte Folded Reload -; CHECK-NEXT: lxv 53, 224(1) # 16-byte Folded Reload -; CHECK-NEXT: lxv 52, 208(1) # 16-byte Folded Reload +; CHECK-NEXT: ld 15, 408(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 16, 416(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 17, 424(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 18, 432(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 19, 440(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 20, 448(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 21, 456(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 22, 464(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 23, 472(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 24, 480(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 25, 488(1) # 8-byte Folded Reload ; CHECK-NEXT: stxv 38, 0(3) ; CHECK-NEXT: ld 3, 72(1) # 8-byte Folded Reload -; CHECK-NEXT: lfd 31, 584(1) # 8-byte Folded Reload -; CHECK-NEXT: lfd 30, 576(1) # 8-byte Folded Reload -; CHECK-NEXT: lfd 29, 568(1) # 8-byte Folded Reload -; CHECK-NEXT: lfd 28, 560(1) # 8-byte Folded Reload -; CHECK-NEXT: lfd 27, 552(1) # 8-byte Folded Reload -; CHECK-NEXT: lfd 26, 544(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 31, 536(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 30, 528(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 29, 520(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 28, 512(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 26, 496(1) # 8-byte Folded Reload ; CHECK-NEXT: ld 27, 504(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 28, 512(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 29, 520(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 30, 528(1) # 8-byte Folded Reload +; CHECK-NEXT: ld 31, 536(1) # 8-byte Folded Reload +; CHECK-NEXT: lfd 26, 544(1) # 8-byte Folded Reload +; CHECK-NEXT: lfd 27, 552(1) # 8-byte Folded Reload +; CHECK-NEXT: lfd 28, 560(1) # 8-byte Folded Reload +; CHECK-NEXT: lfd 29, 568(1) # 8-byte Folded Reload +; CHECK-NEXT: lfd 30, 576(1) # 8-byte Folded Reload ; CHECK-NEXT: stxv 33, 0(3) ; CHECK-NEXT: ld 3, 40(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 26, 496(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 25, 488(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 24, 480(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 23, 472(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 22, 464(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 21, 456(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 20, 448(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 19, 440(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 18, 432(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 17, 424(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 16, 416(1) # 8-byte Folded Reload +; CHECK-NEXT: lfd 31, 584(1) # 8-byte Folded Reload +; CHECK-NEXT: lxv 52, 208(1) # 16-byte Folded Reload +; CHECK-NEXT: lxv 53, 224(1) # 16-byte Folded Reload +; CHECK-NEXT: lxv 54, 240(1) # 16-byte Folded Reload +; CHECK-NEXT: lxv 55, 256(1) # 16-byte Folded Reload +; CHECK-NEXT: lxv 56, 272(1) # 16-byte Folded Reload +; CHECK-NEXT: lxv 57, 288(1) # 16-byte Folded Reload +; CHECK-NEXT: lxv 58, 304(1) # 16-byte Folded Reload +; CHECK-NEXT: lxv 59, 320(1) # 16-byte Folded Reload +; CHECK-NEXT: lxv 60, 336(1) # 16-byte Folded Reload +; CHECK-NEXT: lxv 61, 352(1) # 16-byte Folded Reload ; CHECK-NEXT: stxv 32, 0(3) ; CHECK-NEXT: ld 3, 48(1) # 8-byte Folded Reload ; CHECK-NEXT: stxv 37, 0(10) ; CHECK-NEXT: stxv 36, 0(9) ; CHECK-NEXT: stxv 13, 0(8) -; CHECK-NEXT: ld 15, 408(1) # 8-byte Folded Reload -; CHECK-NEXT: ld 14, 400(1) # 8-byte Folded Reload +; CHECK-NEXT: lxv 62, 368(1) # 16-byte Folded Reload +; CHECK-NEXT: lxv 63, 384(1) # 16-byte Folded Reload ; CHECK-NEXT: stxv 12, 0(3) ; CHECK-NEXT: ld 3, 80(1) # 8-byte Folded Reload ; CHECK-NEXT: stxv 11, 0(3) diff --git a/llvm/test/CodeGen/PowerPC/peephole-phi-acc.mir b/llvm/test/CodeGen/PowerPC/peephole-phi-acc.mir index f615fcf9f8157..7b39b694bb745 100644 --- a/llvm/test/CodeGen/PowerPC/peephole-phi-acc.mir +++ b/llvm/test/CodeGen/PowerPC/peephole-phi-acc.mir @@ -223,8 +223,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] @@ -337,8 +337,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] @@ -485,8 +485,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] @@ -696,8 +696,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/PowerPC/peephole-replaceInstr-after-eliminate-extsw.mir b/llvm/test/CodeGen/PowerPC/peephole-replaceInstr-after-eliminate-extsw.mir index 088bdb8f241f3..6bd0439886677 100644 --- a/llvm/test/CodeGen/PowerPC/peephole-replaceInstr-after-eliminate-extsw.mir +++ b/llvm/test/CodeGen/PowerPC/peephole-replaceInstr-after-eliminate-extsw.mir @@ -447,8 +447,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] entry_values: [] diff --git a/llvm/test/CodeGen/PowerPC/phi-eliminate.mir b/llvm/test/CodeGen/PowerPC/phi-eliminate.mir index 72f778286abe4..38591efffe805 100644 --- a/llvm/test/CodeGen/PowerPC/phi-eliminate.mir +++ b/llvm/test/CodeGen/PowerPC/phi-eliminate.mir @@ -122,8 +122,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/PowerPC/pr43527.ll b/llvm/test/CodeGen/PowerPC/pr43527.ll index 379bd6c070c77..e4b513272b9be 100644 --- a/llvm/test/CodeGen/PowerPC/pr43527.ll +++ b/llvm/test/CodeGen/PowerPC/pr43527.ll @@ -14,8 +14,8 @@ define dso_local void @test(i64 %arg, i64 %arg1) { ; CHECK-NEXT: .cfi_offset lr, 16 ; CHECK-NEXT: .cfi_offset r29, -24 ; CHECK-NEXT: .cfi_offset r30, -16 -; CHECK-NEXT: std r29, -24(r1) # 8-byte Folded Spill ; CHECK-NEXT: std r30, -16(r1) # 8-byte Folded Spill +; CHECK-NEXT: std r29, -24(r1) # 8-byte Folded Spill ; CHECK-NEXT: stdu r1, -64(r1) ; CHECK-NEXT: sub r30, r4, r3 ; CHECK-NEXT: li r29, -4 @@ -33,8 +33,8 @@ define dso_local void @test(i64 %arg, i64 %arg1) { ; CHECK-NEXT: stb r3, 0(r3) ; CHECK-NEXT: addi r1, r1, 64 ; CHECK-NEXT: ld r0, 16(r1) -; CHECK-NEXT: ld r30, -16(r1) # 8-byte Folded Reload ; CHECK-NEXT: ld r29, -24(r1) # 8-byte Folded Reload +; CHECK-NEXT: ld r30, -16(r1) # 8-byte Folded Reload ; CHECK-NEXT: mtlr r0 ; CHECK-NEXT: blr ; CHECK-NEXT: .LBB0_5: # %bb2 diff --git a/llvm/test/CodeGen/PowerPC/remove-copy-crunsetcrbit.mir b/llvm/test/CodeGen/PowerPC/remove-copy-crunsetcrbit.mir index f3ef95bbb79a4..902a68c752f32 100644 --- a/llvm/test/CodeGen/PowerPC/remove-copy-crunsetcrbit.mir +++ b/llvm/test/CodeGen/PowerPC/remove-copy-crunsetcrbit.mir @@ -99,8 +99,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/PowerPC/remove-implicit-use.mir b/llvm/test/CodeGen/PowerPC/remove-implicit-use.mir index f5b931e1e4238..86a20e729ad6e 100644 --- a/llvm/test/CodeGen/PowerPC/remove-implicit-use.mir +++ b/llvm/test/CodeGen/PowerPC/remove-implicit-use.mir @@ -56,8 +56,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/PowerPC/remove-redundant-li-skip-imp-kill.mir b/llvm/test/CodeGen/PowerPC/remove-redundant-li-skip-imp-kill.mir index 913877b0d4318..067618022a34e 100644 --- a/llvm/test/CodeGen/PowerPC/remove-redundant-li-skip-imp-kill.mir +++ b/llvm/test/CodeGen/PowerPC/remove-redundant-li-skip-imp-kill.mir @@ -55,8 +55,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: spill-slot, offset: -80, size: 8, alignment: 16, stack-id: default, callee-saved-register: '$x30', callee-saved-restored: true, debug-info-variable: '', diff --git a/llvm/test/CodeGen/PowerPC/remove-self-copies.mir b/llvm/test/CodeGen/PowerPC/remove-self-copies.mir index b5713a9349f69..948f5ad7df246 100644 --- a/llvm/test/CodeGen/PowerPC/remove-self-copies.mir +++ b/llvm/test/CodeGen/PowerPC/remove-self-copies.mir @@ -65,8 +65,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/PowerPC/rlwinm_rldicl_to_andi.mir b/llvm/test/CodeGen/PowerPC/rlwinm_rldicl_to_andi.mir index a1d8539dd8cb6..f2f29a927c6f9 100644 --- a/llvm/test/CodeGen/PowerPC/rlwinm_rldicl_to_andi.mir +++ b/llvm/test/CodeGen/PowerPC/rlwinm_rldicl_to_andi.mir @@ -107,8 +107,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -167,8 +167,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -227,8 +227,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -284,8 +284,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -338,8 +338,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -392,8 +392,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/PowerPC/schedule-addi-load.mir b/llvm/test/CodeGen/PowerPC/schedule-addi-load.mir index 1717238b2b7a0..9ff3c885f4b26 100644 --- a/llvm/test/CodeGen/PowerPC/schedule-addi-load.mir +++ b/llvm/test/CodeGen/PowerPC/schedule-addi-load.mir @@ -68,8 +68,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/PowerPC/setcr_bc.mir b/llvm/test/CodeGen/PowerPC/setcr_bc.mir index bc8bb5582137f..a5d61e25817d1 100644 --- a/llvm/test/CodeGen/PowerPC/setcr_bc.mir +++ b/llvm/test/CodeGen/PowerPC/setcr_bc.mir @@ -64,8 +64,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: spill-slot, offset: -16, size: 8, alignment: 16, stack-id: default, callee-saved-register: '$x30', callee-saved-restored: true, debug-info-variable: '', diff --git a/llvm/test/CodeGen/PowerPC/setcr_bc2.mir b/llvm/test/CodeGen/PowerPC/setcr_bc2.mir index 5986c885f189e..8da4d1edb4bd8 100644 --- a/llvm/test/CodeGen/PowerPC/setcr_bc2.mir +++ b/llvm/test/CodeGen/PowerPC/setcr_bc2.mir @@ -64,8 +64,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: spill-slot, offset: -16, size: 8, alignment: 16, stack-id: default, callee-saved-register: '$x30', callee-saved-restored: true, debug-info-variable: '', diff --git a/llvm/test/CodeGen/PowerPC/setcr_bc3.mir b/llvm/test/CodeGen/PowerPC/setcr_bc3.mir index 2d037d03bb6b7..37ef2c41d2580 100644 --- a/llvm/test/CodeGen/PowerPC/setcr_bc3.mir +++ b/llvm/test/CodeGen/PowerPC/setcr_bc3.mir @@ -37,8 +37,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: spill-slot, offset: -16, size: 8, alignment: 16, stack-id: default, callee-saved-register: '$x30', callee-saved-restored: true, debug-info-variable: '', diff --git a/llvm/test/CodeGen/PowerPC/shrink-wrap.ll b/llvm/test/CodeGen/PowerPC/shrink-wrap.ll index 12d0b056ca886..44215ce8c4dff 100644 --- a/llvm/test/CodeGen/PowerPC/shrink-wrap.ll +++ b/llvm/test/CodeGen/PowerPC/shrink-wrap.ll @@ -10,26 +10,26 @@ define signext i32 @shrinkwrapme(i32 signext %a, i32 signext %lim) { ; POWERPC64-NEXT: ble 0, .LBB0_4 ; POWERPC64-NEXT: # %bb.1: # %for.body.preheader ; POWERPC64-NEXT: addi 4, 4, -1 -; POWERPC64-NEXT: std 14, -144(1) # 8-byte Folded Spill -; POWERPC64-NEXT: std 15, -136(1) # 8-byte Folded Spill -; POWERPC64-NEXT: std 16, -128(1) # 8-byte Folded Spill -; POWERPC64-NEXT: std 17, -120(1) # 8-byte Folded Spill -; POWERPC64-NEXT: std 18, -112(1) # 8-byte Folded Spill -; POWERPC64-NEXT: std 19, -104(1) # 8-byte Folded Spill -; POWERPC64-NEXT: std 20, -96(1) # 8-byte Folded Spill -; POWERPC64-NEXT: std 21, -88(1) # 8-byte Folded Spill -; POWERPC64-NEXT: std 22, -80(1) # 8-byte Folded Spill -; POWERPC64-NEXT: std 23, -72(1) # 8-byte Folded Spill -; POWERPC64-NEXT: std 24, -64(1) # 8-byte Folded Spill -; POWERPC64-NEXT: std 25, -56(1) # 8-byte Folded Spill -; POWERPC64-NEXT: std 26, -48(1) # 8-byte Folded Spill -; POWERPC64-NEXT: std 27, -40(1) # 8-byte Folded Spill +; POWERPC64-NEXT: std 31, -8(1) # 8-byte Folded Spill +; POWERPC64-NEXT: std 30, -16(1) # 8-byte Folded Spill +; POWERPC64-NEXT: std 29, -24(1) # 8-byte Folded Spill ; POWERPC64-NEXT: std 28, -32(1) # 8-byte Folded Spill +; POWERPC64-NEXT: std 27, -40(1) # 8-byte Folded Spill +; POWERPC64-NEXT: std 26, -48(1) # 8-byte Folded Spill +; POWERPC64-NEXT: std 25, -56(1) # 8-byte Folded Spill +; POWERPC64-NEXT: std 24, -64(1) # 8-byte Folded Spill +; POWERPC64-NEXT: std 23, -72(1) # 8-byte Folded Spill +; POWERPC64-NEXT: std 22, -80(1) # 8-byte Folded Spill +; POWERPC64-NEXT: std 21, -88(1) # 8-byte Folded Spill +; POWERPC64-NEXT: std 20, -96(1) # 8-byte Folded Spill +; POWERPC64-NEXT: std 19, -104(1) # 8-byte Folded Spill +; POWERPC64-NEXT: std 18, -112(1) # 8-byte Folded Spill +; POWERPC64-NEXT: std 17, -120(1) # 8-byte Folded Spill ; POWERPC64-NEXT: clrldi 4, 4, 32 ; POWERPC64-NEXT: addi 4, 4, 1 -; POWERPC64-NEXT: std 29, -24(1) # 8-byte Folded Spill -; POWERPC64-NEXT: std 30, -16(1) # 8-byte Folded Spill -; POWERPC64-NEXT: std 31, -8(1) # 8-byte Folded Spill +; POWERPC64-NEXT: std 16, -128(1) # 8-byte Folded Spill +; POWERPC64-NEXT: std 15, -136(1) # 8-byte Folded Spill +; POWERPC64-NEXT: std 14, -144(1) # 8-byte Folded Spill ; POWERPC64-NEXT: mtctr 4 ; POWERPC64-NEXT: li 4, 0 ; POWERPC64-NEXT: .p2align 4 @@ -40,25 +40,25 @@ define signext i32 @shrinkwrapme(i32 signext %a, i32 signext %lim) { ; POWERPC64-NEXT: #NO_APP ; POWERPC64-NEXT: bdnz .LBB0_2 ; POWERPC64-NEXT: # %bb.3: -; POWERPC64-NEXT: ld 31, -8(1) # 8-byte Folded Reload -; POWERPC64-NEXT: ld 30, -16(1) # 8-byte Folded Reload -; POWERPC64-NEXT: ld 29, -24(1) # 8-byte Folded Reload -; POWERPC64-NEXT: ld 28, -32(1) # 8-byte Folded Reload +; POWERPC64-NEXT: ld 14, -144(1) # 8-byte Folded Reload +; POWERPC64-NEXT: ld 15, -136(1) # 8-byte Folded Reload +; POWERPC64-NEXT: ld 16, -128(1) # 8-byte Folded Reload +; POWERPC64-NEXT: ld 17, -120(1) # 8-byte Folded Reload ; POWERPC64-NEXT: extsw 3, 4 -; POWERPC64-NEXT: ld 27, -40(1) # 8-byte Folded Reload -; POWERPC64-NEXT: ld 26, -48(1) # 8-byte Folded Reload -; POWERPC64-NEXT: ld 25, -56(1) # 8-byte Folded Reload -; POWERPC64-NEXT: ld 24, -64(1) # 8-byte Folded Reload -; POWERPC64-NEXT: ld 23, -72(1) # 8-byte Folded Reload -; POWERPC64-NEXT: ld 22, -80(1) # 8-byte Folded Reload -; POWERPC64-NEXT: ld 21, -88(1) # 8-byte Folded Reload -; POWERPC64-NEXT: ld 20, -96(1) # 8-byte Folded Reload -; POWERPC64-NEXT: ld 19, -104(1) # 8-byte Folded Reload ; POWERPC64-NEXT: ld 18, -112(1) # 8-byte Folded Reload -; POWERPC64-NEXT: ld 17, -120(1) # 8-byte Folded Reload -; POWERPC64-NEXT: ld 16, -128(1) # 8-byte Folded Reload -; POWERPC64-NEXT: ld 15, -136(1) # 8-byte Folded Reload -; POWERPC64-NEXT: ld 14, -144(1) # 8-byte Folded Reload +; POWERPC64-NEXT: ld 19, -104(1) # 8-byte Folded Reload +; POWERPC64-NEXT: ld 20, -96(1) # 8-byte Folded Reload +; POWERPC64-NEXT: ld 21, -88(1) # 8-byte Folded Reload +; POWERPC64-NEXT: ld 22, -80(1) # 8-byte Folded Reload +; POWERPC64-NEXT: ld 23, -72(1) # 8-byte Folded Reload +; POWERPC64-NEXT: ld 24, -64(1) # 8-byte Folded Reload +; POWERPC64-NEXT: ld 25, -56(1) # 8-byte Folded Reload +; POWERPC64-NEXT: ld 26, -48(1) # 8-byte Folded Reload +; POWERPC64-NEXT: ld 27, -40(1) # 8-byte Folded Reload +; POWERPC64-NEXT: ld 28, -32(1) # 8-byte Folded Reload +; POWERPC64-NEXT: ld 29, -24(1) # 8-byte Folded Reload +; POWERPC64-NEXT: ld 30, -16(1) # 8-byte Folded Reload +; POWERPC64-NEXT: ld 31, -8(1) # 8-byte Folded Reload ; POWERPC64-NEXT: blr ; POWERPC64-NEXT: .LBB0_4: ; POWERPC64-NEXT: li 4, 0 @@ -70,24 +70,24 @@ define signext i32 @shrinkwrapme(i32 signext %a, i32 signext %lim) { ; POWERPC32-AIX-NEXT: cmpwi 4, 0 ; POWERPC32-AIX-NEXT: ble 0, L..BB0_4 ; POWERPC32-AIX-NEXT: # %bb.1: # %for.body.preheader -; POWERPC32-AIX-NEXT: stw 14, -72(1) # 4-byte Folded Spill -; POWERPC32-AIX-NEXT: stw 15, -68(1) # 4-byte Folded Spill -; POWERPC32-AIX-NEXT: stw 16, -64(1) # 4-byte Folded Spill -; POWERPC32-AIX-NEXT: stw 17, -60(1) # 4-byte Folded Spill -; POWERPC32-AIX-NEXT: stw 18, -56(1) # 4-byte Folded Spill -; POWERPC32-AIX-NEXT: stw 19, -52(1) # 4-byte Folded Spill -; POWERPC32-AIX-NEXT: stw 20, -48(1) # 4-byte Folded Spill -; POWERPC32-AIX-NEXT: stw 21, -44(1) # 4-byte Folded Spill -; POWERPC32-AIX-NEXT: stw 22, -40(1) # 4-byte Folded Spill -; POWERPC32-AIX-NEXT: stw 23, -36(1) # 4-byte Folded Spill -; POWERPC32-AIX-NEXT: stw 24, -32(1) # 4-byte Folded Spill -; POWERPC32-AIX-NEXT: stw 25, -28(1) # 4-byte Folded Spill -; POWERPC32-AIX-NEXT: stw 26, -24(1) # 4-byte Folded Spill -; POWERPC32-AIX-NEXT: stw 27, -20(1) # 4-byte Folded Spill -; POWERPC32-AIX-NEXT: stw 28, -16(1) # 4-byte Folded Spill -; POWERPC32-AIX-NEXT: stw 29, -12(1) # 4-byte Folded Spill -; POWERPC32-AIX-NEXT: stw 30, -8(1) # 4-byte Folded Spill ; POWERPC32-AIX-NEXT: stw 31, -4(1) # 4-byte Folded Spill +; POWERPC32-AIX-NEXT: stw 30, -8(1) # 4-byte Folded Spill +; POWERPC32-AIX-NEXT: stw 29, -12(1) # 4-byte Folded Spill +; POWERPC32-AIX-NEXT: stw 28, -16(1) # 4-byte Folded Spill +; POWERPC32-AIX-NEXT: stw 27, -20(1) # 4-byte Folded Spill +; POWERPC32-AIX-NEXT: stw 26, -24(1) # 4-byte Folded Spill +; POWERPC32-AIX-NEXT: stw 25, -28(1) # 4-byte Folded Spill +; POWERPC32-AIX-NEXT: stw 24, -32(1) # 4-byte Folded Spill +; POWERPC32-AIX-NEXT: stw 23, -36(1) # 4-byte Folded Spill +; POWERPC32-AIX-NEXT: stw 22, -40(1) # 4-byte Folded Spill +; POWERPC32-AIX-NEXT: stw 21, -44(1) # 4-byte Folded Spill +; POWERPC32-AIX-NEXT: stw 20, -48(1) # 4-byte Folded Spill +; POWERPC32-AIX-NEXT: stw 19, -52(1) # 4-byte Folded Spill +; POWERPC32-AIX-NEXT: stw 18, -56(1) # 4-byte Folded Spill +; POWERPC32-AIX-NEXT: stw 17, -60(1) # 4-byte Folded Spill +; POWERPC32-AIX-NEXT: stw 16, -64(1) # 4-byte Folded Spill +; POWERPC32-AIX-NEXT: stw 15, -68(1) # 4-byte Folded Spill +; POWERPC32-AIX-NEXT: stw 14, -72(1) # 4-byte Folded Spill ; POWERPC32-AIX-NEXT: mtctr 4 ; POWERPC32-AIX-NEXT: li 4, 0 ; POWERPC32-AIX-NEXT: .align 4 @@ -98,25 +98,25 @@ define signext i32 @shrinkwrapme(i32 signext %a, i32 signext %lim) { ; POWERPC32-AIX-NEXT: #NO_APP ; POWERPC32-AIX-NEXT: bdnz L..BB0_2 ; POWERPC32-AIX-NEXT: # %bb.3: -; POWERPC32-AIX-NEXT: lwz 31, -4(1) # 4-byte Folded Reload -; POWERPC32-AIX-NEXT: lwz 30, -8(1) # 4-byte Folded Reload -; POWERPC32-AIX-NEXT: lwz 29, -12(1) # 4-byte Folded Reload -; POWERPC32-AIX-NEXT: lwz 28, -16(1) # 4-byte Folded Reload +; POWERPC32-AIX-NEXT: lwz 14, -72(1) # 4-byte Folded Reload +; POWERPC32-AIX-NEXT: lwz 15, -68(1) # 4-byte Folded Reload +; POWERPC32-AIX-NEXT: lwz 16, -64(1) # 4-byte Folded Reload +; POWERPC32-AIX-NEXT: lwz 17, -60(1) # 4-byte Folded Reload ; POWERPC32-AIX-NEXT: mr 3, 4 -; POWERPC32-AIX-NEXT: lwz 27, -20(1) # 4-byte Folded Reload -; POWERPC32-AIX-NEXT: lwz 26, -24(1) # 4-byte Folded Reload -; POWERPC32-AIX-NEXT: lwz 25, -28(1) # 4-byte Folded Reload -; POWERPC32-AIX-NEXT: lwz 24, -32(1) # 4-byte Folded Reload -; POWERPC32-AIX-NEXT: lwz 23, -36(1) # 4-byte Folded Reload -; POWERPC32-AIX-NEXT: lwz 22, -40(1) # 4-byte Folded Reload -; POWERPC32-AIX-NEXT: lwz 21, -44(1) # 4-byte Folded Reload -; POWERPC32-AIX-NEXT: lwz 20, -48(1) # 4-byte Folded Reload -; POWERPC32-AIX-NEXT: lwz 19, -52(1) # 4-byte Folded Reload ; POWERPC32-AIX-NEXT: lwz 18, -56(1) # 4-byte Folded Reload -; POWERPC32-AIX-NEXT: lwz 17, -60(1) # 4-byte Folded Reload -; POWERPC32-AIX-NEXT: lwz 16, -64(1) # 4-byte Folded Reload -; POWERPC32-AIX-NEXT: lwz 15, -68(1) # 4-byte Folded Reload -; POWERPC32-AIX-NEXT: lwz 14, -72(1) # 4-byte Folded Reload +; POWERPC32-AIX-NEXT: lwz 19, -52(1) # 4-byte Folded Reload +; POWERPC32-AIX-NEXT: lwz 20, -48(1) # 4-byte Folded Reload +; POWERPC32-AIX-NEXT: lwz 21, -44(1) # 4-byte Folded Reload +; POWERPC32-AIX-NEXT: lwz 22, -40(1) # 4-byte Folded Reload +; POWERPC32-AIX-NEXT: lwz 23, -36(1) # 4-byte Folded Reload +; POWERPC32-AIX-NEXT: lwz 24, -32(1) # 4-byte Folded Reload +; POWERPC32-AIX-NEXT: lwz 25, -28(1) # 4-byte Folded Reload +; POWERPC32-AIX-NEXT: lwz 26, -24(1) # 4-byte Folded Reload +; POWERPC32-AIX-NEXT: lwz 27, -20(1) # 4-byte Folded Reload +; POWERPC32-AIX-NEXT: lwz 28, -16(1) # 4-byte Folded Reload +; POWERPC32-AIX-NEXT: lwz 29, -12(1) # 4-byte Folded Reload +; POWERPC32-AIX-NEXT: lwz 30, -8(1) # 4-byte Folded Reload +; POWERPC32-AIX-NEXT: lwz 31, -4(1) # 4-byte Folded Reload ; POWERPC32-AIX-NEXT: blr ; POWERPC32-AIX-NEXT: L..BB0_4: ; POWERPC32-AIX-NEXT: li 3, 0 @@ -128,26 +128,26 @@ define signext i32 @shrinkwrapme(i32 signext %a, i32 signext %lim) { ; POWERPC64-AIX-NEXT: blt 0, L..BB0_4 ; POWERPC64-AIX-NEXT: # %bb.1: # %for.body.preheader ; POWERPC64-AIX-NEXT: addi 4, 4, -1 -; POWERPC64-AIX-NEXT: std 14, -144(1) # 8-byte Folded Spill -; POWERPC64-AIX-NEXT: std 15, -136(1) # 8-byte Folded Spill -; POWERPC64-AIX-NEXT: std 16, -128(1) # 8-byte Folded Spill -; POWERPC64-AIX-NEXT: std 17, -120(1) # 8-byte Folded Spill -; POWERPC64-AIX-NEXT: std 18, -112(1) # 8-byte Folded Spill -; POWERPC64-AIX-NEXT: std 19, -104(1) # 8-byte Folded Spill -; POWERPC64-AIX-NEXT: std 20, -96(1) # 8-byte Folded Spill -; POWERPC64-AIX-NEXT: std 21, -88(1) # 8-byte Folded Spill -; POWERPC64-AIX-NEXT: std 22, -80(1) # 8-byte Folded Spill -; POWERPC64-AIX-NEXT: std 23, -72(1) # 8-byte Folded Spill -; POWERPC64-AIX-NEXT: std 24, -64(1) # 8-byte Folded Spill -; POWERPC64-AIX-NEXT: std 25, -56(1) # 8-byte Folded Spill -; POWERPC64-AIX-NEXT: std 26, -48(1) # 8-byte Folded Spill -; POWERPC64-AIX-NEXT: std 27, -40(1) # 8-byte Folded Spill +; POWERPC64-AIX-NEXT: std 31, -8(1) # 8-byte Folded Spill +; POWERPC64-AIX-NEXT: std 30, -16(1) # 8-byte Folded Spill +; POWERPC64-AIX-NEXT: std 29, -24(1) # 8-byte Folded Spill ; POWERPC64-AIX-NEXT: std 28, -32(1) # 8-byte Folded Spill +; POWERPC64-AIX-NEXT: std 27, -40(1) # 8-byte Folded Spill +; POWERPC64-AIX-NEXT: std 26, -48(1) # 8-byte Folded Spill +; POWERPC64-AIX-NEXT: std 25, -56(1) # 8-byte Folded Spill +; POWERPC64-AIX-NEXT: std 24, -64(1) # 8-byte Folded Spill +; POWERPC64-AIX-NEXT: std 23, -72(1) # 8-byte Folded Spill +; POWERPC64-AIX-NEXT: std 22, -80(1) # 8-byte Folded Spill +; POWERPC64-AIX-NEXT: std 21, -88(1) # 8-byte Folded Spill +; POWERPC64-AIX-NEXT: std 20, -96(1) # 8-byte Folded Spill +; POWERPC64-AIX-NEXT: std 19, -104(1) # 8-byte Folded Spill +; POWERPC64-AIX-NEXT: std 18, -112(1) # 8-byte Folded Spill +; POWERPC64-AIX-NEXT: std 17, -120(1) # 8-byte Folded Spill ; POWERPC64-AIX-NEXT: clrldi 4, 4, 32 ; POWERPC64-AIX-NEXT: addi 4, 4, 1 -; POWERPC64-AIX-NEXT: std 29, -24(1) # 8-byte Folded Spill -; POWERPC64-AIX-NEXT: std 30, -16(1) # 8-byte Folded Spill -; POWERPC64-AIX-NEXT: std 31, -8(1) # 8-byte Folded Spill +; POWERPC64-AIX-NEXT: std 16, -128(1) # 8-byte Folded Spill +; POWERPC64-AIX-NEXT: std 15, -136(1) # 8-byte Folded Spill +; POWERPC64-AIX-NEXT: std 14, -144(1) # 8-byte Folded Spill ; POWERPC64-AIX-NEXT: mtctr 4 ; POWERPC64-AIX-NEXT: li 4, 0 ; POWERPC64-AIX-NEXT: .align 4 @@ -158,25 +158,25 @@ define signext i32 @shrinkwrapme(i32 signext %a, i32 signext %lim) { ; POWERPC64-AIX-NEXT: #NO_APP ; POWERPC64-AIX-NEXT: bdnz L..BB0_2 ; POWERPC64-AIX-NEXT: # %bb.3: -; POWERPC64-AIX-NEXT: ld 31, -8(1) # 8-byte Folded Reload -; POWERPC64-AIX-NEXT: ld 30, -16(1) # 8-byte Folded Reload -; POWERPC64-AIX-NEXT: ld 29, -24(1) # 8-byte Folded Reload -; POWERPC64-AIX-NEXT: ld 28, -32(1) # 8-byte Folded Reload +; POWERPC64-AIX-NEXT: ld 14, -144(1) # 8-byte Folded Reload +; POWERPC64-AIX-NEXT: ld 15, -136(1) # 8-byte Folded Reload +; POWERPC64-AIX-NEXT: ld 16, -128(1) # 8-byte Folded Reload +; POWERPC64-AIX-NEXT: ld 17, -120(1) # 8-byte Folded Reload ; POWERPC64-AIX-NEXT: extsw 3, 4 -; POWERPC64-AIX-NEXT: ld 27, -40(1) # 8-byte Folded Reload -; POWERPC64-AIX-NEXT: ld 26, -48(1) # 8-byte Folded Reload -; POWERPC64-AIX-NEXT: ld 25, -56(1) # 8-byte Folded Reload -; POWERPC64-AIX-NEXT: ld 24, -64(1) # 8-byte Folded Reload -; POWERPC64-AIX-NEXT: ld 23, -72(1) # 8-byte Folded Reload -; POWERPC64-AIX-NEXT: ld 22, -80(1) # 8-byte Folded Reload -; POWERPC64-AIX-NEXT: ld 21, -88(1) # 8-byte Folded Reload -; POWERPC64-AIX-NEXT: ld 20, -96(1) # 8-byte Folded Reload -; POWERPC64-AIX-NEXT: ld 19, -104(1) # 8-byte Folded Reload ; POWERPC64-AIX-NEXT: ld 18, -112(1) # 8-byte Folded Reload -; POWERPC64-AIX-NEXT: ld 17, -120(1) # 8-byte Folded Reload -; POWERPC64-AIX-NEXT: ld 16, -128(1) # 8-byte Folded Reload -; POWERPC64-AIX-NEXT: ld 15, -136(1) # 8-byte Folded Reload -; POWERPC64-AIX-NEXT: ld 14, -144(1) # 8-byte Folded Reload +; POWERPC64-AIX-NEXT: ld 19, -104(1) # 8-byte Folded Reload +; POWERPC64-AIX-NEXT: ld 20, -96(1) # 8-byte Folded Reload +; POWERPC64-AIX-NEXT: ld 21, -88(1) # 8-byte Folded Reload +; POWERPC64-AIX-NEXT: ld 22, -80(1) # 8-byte Folded Reload +; POWERPC64-AIX-NEXT: ld 23, -72(1) # 8-byte Folded Reload +; POWERPC64-AIX-NEXT: ld 24, -64(1) # 8-byte Folded Reload +; POWERPC64-AIX-NEXT: ld 25, -56(1) # 8-byte Folded Reload +; POWERPC64-AIX-NEXT: ld 26, -48(1) # 8-byte Folded Reload +; POWERPC64-AIX-NEXT: ld 27, -40(1) # 8-byte Folded Reload +; POWERPC64-AIX-NEXT: ld 28, -32(1) # 8-byte Folded Reload +; POWERPC64-AIX-NEXT: ld 29, -24(1) # 8-byte Folded Reload +; POWERPC64-AIX-NEXT: ld 30, -16(1) # 8-byte Folded Reload +; POWERPC64-AIX-NEXT: ld 31, -8(1) # 8-byte Folded Reload ; POWERPC64-AIX-NEXT: blr ; POWERPC64-AIX-NEXT: L..BB0_4: ; POWERPC64-AIX-NEXT: li 4, 0 diff --git a/llvm/test/CodeGen/PowerPC/tls_get_addr_fence1.mir b/llvm/test/CodeGen/PowerPC/tls_get_addr_fence1.mir index 73bd475e9d498..e95c43d2dd4de 100644 --- a/llvm/test/CodeGen/PowerPC/tls_get_addr_fence1.mir +++ b/llvm/test/CodeGen/PowerPC/tls_get_addr_fence1.mir @@ -43,8 +43,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/PowerPC/tls_get_addr_fence2.mir b/llvm/test/CodeGen/PowerPC/tls_get_addr_fence2.mir index ffeb066b94785..dcb8b8ecbb2f7 100644 --- a/llvm/test/CodeGen/PowerPC/tls_get_addr_fence2.mir +++ b/llvm/test/CodeGen/PowerPC/tls_get_addr_fence2.mir @@ -43,8 +43,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/PowerPC/two-address-crash.mir b/llvm/test/CodeGen/PowerPC/two-address-crash.mir index cd2e69d8612b9..61b9c903b6995 100644 --- a/llvm/test/CodeGen/PowerPC/two-address-crash.mir +++ b/llvm/test/CodeGen/PowerPC/two-address-crash.mir @@ -62,8 +62,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/RISCV/live-sp.mir b/llvm/test/CodeGen/RISCV/live-sp.mir index 9f40870feb00f..29e11196f14ab 100644 --- a/llvm/test/CodeGen/RISCV/live-sp.mir +++ b/llvm/test/CodeGen/RISCV/live-sp.mir @@ -54,8 +54,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: a, type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/RISCV/pr53662.mir b/llvm/test/CodeGen/RISCV/pr53662.mir index ce5e5e811f2c6..d716b2468ac6d 100644 --- a/llvm/test/CodeGen/RISCV/pr53662.mir +++ b/llvm/test/CodeGen/RISCV/pr53662.mir @@ -10,8 +10,8 @@ --- name: b frameInfo: - savePoint: '%bb.0' - restorePoint: '%bb.1' + savePoints: [] + restorePoints: [] body: | ; CHECK-LABEL: name: b ; CHECK: bb.0: diff --git a/llvm/test/CodeGen/RISCV/rvv/addi-rvv-stack-object.mir b/llvm/test/CodeGen/RISCV/rvv/addi-rvv-stack-object.mir index 080a89e41f0d5..9d33992b8a160 100644 --- a/llvm/test/CodeGen/RISCV/rvv/addi-rvv-stack-object.mir +++ b/llvm/test/CodeGen/RISCV/rvv/addi-rvv-stack-object.mir @@ -33,8 +33,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: local0, type: default, offset: 0, size: 16, alignment: 16, diff --git a/llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir b/llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir index 9e6a36d68833d..7eb94a988389d 100644 --- a/llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir +++ b/llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir @@ -34,8 +34,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: default, offset: 0, size: 2048, alignment: 128, diff --git a/llvm/test/CodeGen/RISCV/rvv/large-rvv-stack-size.mir b/llvm/test/CodeGen/RISCV/rvv/large-rvv-stack-size.mir index 559362e6d6274..b6b2b2cf578e7 100644 --- a/llvm/test/CodeGen/RISCV/rvv/large-rvv-stack-size.mir +++ b/llvm/test/CodeGen/RISCV/rvv/large-rvv-stack-size.mir @@ -68,8 +68,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: default, offset: 0, size: 2048, alignment: 128, diff --git a/llvm/test/CodeGen/RISCV/rvv/rvv-stack-align.mir b/llvm/test/CodeGen/RISCV/rvv/rvv-stack-align.mir index 749bd4c13879b..c0f172422adfc 100644 --- a/llvm/test/CodeGen/RISCV/rvv/rvv-stack-align.mir +++ b/llvm/test/CodeGen/RISCV/rvv/rvv-stack-align.mir @@ -169,8 +169,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: a, type: default, offset: 0, size: 16, alignment: 8, @@ -214,8 +214,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: a, type: default, offset: 0, size: 16, alignment: 16, @@ -259,8 +259,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: a, type: default, offset: 0, size: 16, alignment: 32, diff --git a/llvm/test/CodeGen/RISCV/rvv/undef-earlyclobber-chain.mir b/llvm/test/CodeGen/RISCV/rvv/undef-earlyclobber-chain.mir index 69078710e9ccf..8d47aa769f59a 100644 --- a/llvm/test/CodeGen/RISCV/rvv/undef-earlyclobber-chain.mir +++ b/llvm/test/CodeGen/RISCV/rvv/undef-earlyclobber-chain.mir @@ -62,8 +62,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] entry_values: [] diff --git a/llvm/test/CodeGen/RISCV/rvv/wrong-stack-offset-for-rvv-object.mir b/llvm/test/CodeGen/RISCV/rvv/wrong-stack-offset-for-rvv-object.mir index 2ec51911a65f7..a6a75121e6768 100644 --- a/llvm/test/CodeGen/RISCV/rvv/wrong-stack-offset-for-rvv-object.mir +++ b/llvm/test/CodeGen/RISCV/rvv/wrong-stack-offset-for-rvv-object.mir @@ -93,8 +93,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: -8, size: 8, alignment: 8, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, diff --git a/llvm/test/CodeGen/RISCV/shrinkwrap-split.mir b/llvm/test/CodeGen/RISCV/shrinkwrap-split.mir new file mode 100644 index 0000000000000..6c67271f2155b --- /dev/null +++ b/llvm/test/CodeGen/RISCV/shrinkwrap-split.mir @@ -0,0 +1,282 @@ +# RUN: llc -march=riscv64 -run-pass shrink-wrap -enable-shrink-wrap-into-multiple-points=true %s -o - | FileCheck %s -check-prefix=FIRST-CHECK +# RUN: llc -march=riscv64 -run-pass shrink-wrap -enable-shrink-wrap-into-multiple-points=true %s -o - | FileCheck %s -check-prefix=SECOND-CHECK + +# FIRST-CHECK: savePoints: +# FIRST-CHECK: - point: '%bb.0' +# SECOND-CHECK: - point: '%bb.2' +# FIRST-CHECK: restorePoints: +# FIRST-CHECK: - point: '%bb.7' +# SECOND-CHECK: - point: '%bb.8' + +--- | + ; ModuleID = 'shrinkwrap-split.ll' + %struct.task = type { i32, i32, [20 x i32] } + + ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable + define dso_local noundef signext i32 @_Z5earlyP4taskib(ptr nocapture noundef %t, i32 noundef signext %i, i1 noundef zeroext %cond) local_unnamed_addr #0 { + entry: + %arr = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2 + %0 = load i32, ptr %arr, align 4, !tbaa !7 + %arrayidx2 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 1 + %1 = load i32, ptr %arrayidx2, align 4, !tbaa !7 + %arrayidx4 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 2 + %2 = load i32, ptr %arrayidx4, align 4, !tbaa !7 + %arrayidx6 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 3 + %3 = load i32, ptr %arrayidx6, align 4, !tbaa !7 + %arrayidx8 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 4 + %4 = load i32, ptr %arrayidx8, align 4, !tbaa !7 + %arrayidx10 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 5 + %5 = load i32, ptr %arrayidx10, align 4, !tbaa !7 + %arrayidx12 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 6 + %6 = load i32, ptr %arrayidx12, align 4, !tbaa !7 + %arrayidx14 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 7 + %7 = load i32, ptr %arrayidx14, align 4, !tbaa !7 + %arrayidx16 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 8 + %8 = load i32, ptr %arrayidx16, align 4, !tbaa !7 + %arrayidx18 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 9 + %9 = load i32, ptr %arrayidx18, align 4, !tbaa !7 + %arrayidx20 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 10 + %10 = load i32, ptr %arrayidx20, align 4, !tbaa !7 + %arrayidx22 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 11 + %11 = load i32, ptr %arrayidx22, align 4, !tbaa !7 + %arrayidx24 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 12 + %12 = load i32, ptr %arrayidx24, align 4, !tbaa !7 + %arrayidx26 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 13 + %13 = load i32, ptr %arrayidx26, align 4, !tbaa !7 + %arrayidx28 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 14 + %14 = load i32, ptr %arrayidx28, align 4, !tbaa !7 + %arrayidx30 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 15 + %15 = load i32, ptr %arrayidx30, align 4, !tbaa !7 + %arrayidx32 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 16 + %16 = load i32, ptr %arrayidx32, align 4, !tbaa !7 + %arrayidx34 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 17 + %17 = load i32, ptr %arrayidx34, align 4, !tbaa !7 + %arrayidx36 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 18 + %18 = load i32, ptr %arrayidx36, align 4, !tbaa !7 + %arrayidx38 = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 2, i64 19 + %19 = load i32, ptr %arrayidx38, align 4, !tbaa !7 + %20 = load i32, ptr %t, align 4, !tbaa !11 + %add = add i32 %10, %0 + %add39 = add i32 %add, %20 + %cmp = icmp slt i32 %add39, %i + br i1 %cmp, label %for.cond.preheader, label %cleanup + + for.cond.preheader: ; preds = %entry + %y = getelementptr inbounds %struct.task, ptr %t, i64 0, i32 1 + %21 = load i32, ptr %y, align 4, !tbaa !13 + %cmp40.not119 = icmp eq i32 %21, 0 + br i1 %cmp40.not119, label %for.cond.cleanup, label %for.body.preheader + + for.body.preheader: ; preds = %for.cond.preheader + %22 = add i32 %21, -1 + %cond41 = select i1 %cond, i32 %22, i32 %i + store i32 %cond41, ptr %t, align 4, !tbaa !11 + br label %for.cond.cleanup + + for.cond.cleanup: ; preds = %for.body.preheader, %for.cond.preheader + %23 = phi i32 [ %cond41, %for.body.preheader ], [ %20, %for.cond.preheader ] + %tobool44 = icmp ne i32 %21, 0 + %conv = zext i1 %tobool44 to i32 + %add48 = add i32 %1, %0 + %add49 = add i32 %add48, %2 + %add50 = add i32 %add49, %3 + %add51 = add i32 %add50, %4 + %add52 = add i32 %add51, %5 + %add53 = add i32 %add52, %6 + %add54 = add i32 %add53, %7 + %add55 = add i32 %add54, %8 + %add56 = add i32 %add55, %9 + %add57 = add i32 %add56, %10 + %add58 = add i32 %add57, %11 + %add59 = add i32 %add58, %12 + %add60 = add i32 %add59, %13 + %add61 = add i32 %add60, %14 + %add62 = add i32 %add61, %15 + %add63 = add i32 %add62, %16 + %add64 = add i32 %add63, %17 + %add65 = add i32 %add64, %18 + %add66 = add i32 %add65, %19 + %add67 = add i32 %add66, %conv + %add68 = add i32 %add67, %23 + br label %cleanup + + cleanup: ; preds = %for.cond.cleanup, %entry + %retval.0 = phi i32 [ %add68, %for.cond.cleanup ], [ %i, %entry ] + ret i32 %retval.0 + } + + !llvm.module.flags = !{!0, !1, !2, !3, !4, !5} + !llvm.ident = !{!6} + + !0 = !{i32 1, !"wchar_size", i32 4} + !1 = !{i32 1, !"target-abi", !"lp64d"} + !2 = !{i32 8, !"PIC Level", i32 2} + !3 = !{i32 7, !"PIE Level", i32 2} + !4 = !{i32 7, !"uwtable", i32 2} + !5 = !{i32 8, !"SmallDataLimit", i32 8} + !6 = !{!"Syntacore clang version 17.0.0 (SC git:/tools/llvm/llvm-project/ 8031017f1ef69f62fbaa0b426e738d5e5fe5ae54)"} + !7 = !{!8, !8, i64 0} + !8 = !{!"int", !9, i64 0} + !9 = !{!"omnipotent char", !10, i64 0} + !10 = !{!"Simple C++ TBAA"} + !11 = !{!12, !8, i64 0} + !12 = !{!"_ZTS4task", !8, i64 0, !8, i64 4, !9, i64 8} + !13 = !{!12, !8, i64 4} + +... +--- +name: _Z5earlyP4taskib +alignment: 2 +exposesReturnsTwice: false +legalized: false +regBankSelected: false +selected: false +failedISel: false +tracksRegLiveness: true +hasWinCFI: false +callsEHReturn: false +callsUnwindInit: false +hasEHCatchret: false +hasEHScopes: false +hasEHFunclets: false +isOutlined: false +debugInstrRef: false +failsVerification: false +tracksDebugUserValues: true +registers: [] +liveins: + - { reg: '$x10', virtual-reg: '' } + - { reg: '$x11', virtual-reg: '' } + - { reg: '$x12', virtual-reg: '' } +frameInfo: + isFrameAddressTaken: false + isReturnAddressTaken: false + hasStackMap: false + hasPatchPoint: false + stackSize: 0 + offsetAdjustment: 0 + maxAlignment: 1 + adjustsStack: false + hasCalls: false + stackProtector: '' + functionContext: '' + maxCallFrameSize: 4294967295 + cvBytesOfCalleeSavedRegisters: 0 + hasOpaqueSPAdjustment: false + hasVAStart: false + hasMustTailInVarArgFunc: false + hasTailCall: false + localFrameSize: 0 +fixedStack: [] +stack: [] +entry_values: [] +callSites: [] +debugValueSubstitutions: [] +constants: [] +machineFunctionInfo: + varArgsFrameIndex: 0 + varArgsSaveSize: 0 +body: | + bb.0.entry: + successors: %bb.1(0x40000000), %bb.8(0x40000000) + liveins: $x10, $x11, $x12 + + renamable $x13 = COPY $x10 + renamable $x9 = LW $x10, 8 :: (load (s32) from %ir.arr, !tbaa !7) + renamable $x16 = LW $x10, 48 :: (load (s32) from %ir.arrayidx20, !tbaa !7) + renamable $x15 = LW $x10, 0 :: (load (s32) from %ir.t, !tbaa !11) + renamable $x14 = ADD renamable $x16, renamable $x9 + renamable $x10 = COPY $x11 + renamable $x14 = ADDW killed renamable $x14, renamable $x15 + BLT killed renamable $x14, $x11, %bb.1 + + bb.8: + successors: %bb.7(0x80000000) + liveins: $x10 + + PseudoBR %bb.7 + + bb.1.for.cond.preheader: + successors: %bb.6(0x30000000), %bb.2(0x50000000) + liveins: $x9, $x10, $x12, $x13, $x15, $x16 + + renamable $x20 = LW renamable $x13, 12 :: (load (s32) from %ir.arrayidx2, !tbaa !7) + renamable $x30 = LW renamable $x13, 16 :: (load (s32) from %ir.arrayidx4, !tbaa !7) + renamable $x24 = LW renamable $x13, 20 :: (load (s32) from %ir.arrayidx6, !tbaa !7) + renamable $x31 = LW renamable $x13, 24 :: (load (s32) from %ir.arrayidx8, !tbaa !7) + renamable $x25 = LW renamable $x13, 28 :: (load (s32) from %ir.arrayidx10, !tbaa !7) + renamable $x7 = LW renamable $x13, 32 :: (load (s32) from %ir.arrayidx12, !tbaa !7) + renamable $x21 = LW renamable $x13, 36 :: (load (s32) from %ir.arrayidx14, !tbaa !7) + renamable $x14 = LW renamable $x13, 40 :: (load (s32) from %ir.arrayidx16, !tbaa !7) + renamable $x23 = LW renamable $x13, 44 :: (load (s32) from %ir.arrayidx18, !tbaa !7) + renamable $x29 = LW renamable $x13, 52 :: (load (s32) from %ir.arrayidx22, !tbaa !7) + renamable $x22 = LW renamable $x13, 56 :: (load (s32) from %ir.arrayidx24, !tbaa !7) + renamable $x6 = LW renamable $x13, 60 :: (load (s32) from %ir.arrayidx26, !tbaa !7) + renamable $x17 = LW renamable $x13, 64 :: (load (s32) from %ir.arrayidx28, !tbaa !7) + renamable $x5 = LW renamable $x13, 68 :: (load (s32) from %ir.arrayidx30, !tbaa !7) + renamable $x28 = LW renamable $x13, 72 :: (load (s32) from %ir.arrayidx32, !tbaa !7) + renamable $x18 = LW renamable $x13, 76 :: (load (s32) from %ir.arrayidx34, !tbaa !7) + renamable $x19 = LW renamable $x13, 80 :: (load (s32) from %ir.arrayidx36, !tbaa !7) + renamable $x8 = LW renamable $x13, 4 :: (load (s32) from %ir.y, !tbaa !13) + renamable $x11 = LW renamable $x13, 84 :: (load (s32) from %ir.arrayidx38, !tbaa !7) + BEQ renamable $x8, $x0, %bb.6 + PseudoBR %bb.2 + + bb.2.for.body.preheader: + successors: %bb.4(0x40000000), %bb.3(0x40000000) + liveins: $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x12, $x13, $x14, $x16, $x17, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x28, $x29, $x30, $x31 + + BEQ killed renamable $x12, $x0, %bb.4 + + bb.3: + successors: %bb.5(0x80000000) + liveins: $x5, $x6, $x7, $x8, $x9, $x11, $x13, $x14, $x16, $x17, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x28, $x29, $x30, $x31 + + renamable $x10 = ADDIW renamable $x8, -1 + PseudoBR %bb.5 + + bb.4.for.body.preheader: + successors: %bb.5(0x80000000) + liveins: $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x13, $x14, $x16, $x17, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x28, $x29, $x30, $x31 + + + bb.5.for.body.preheader: + successors: %bb.6(0x80000000) + liveins: $x5, $x6, $x7, $x8, $x9, $x10, $x11, $x13, $x14, $x16, $x17, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x28, $x29, $x30, $x31 + + SW renamable $x10, killed renamable $x13, 0 :: (store (s32) into %ir.t, !tbaa !11) + renamable $x15 = COPY killed renamable $x10 + + bb.6.for.cond.cleanup: + successors: %bb.7(0x80000000) + liveins: $x5, $x6, $x7, $x8, $x9, $x11, $x14, $x15, $x16, $x17, $x18, $x19, $x20, $x21, $x22, $x23, $x24, $x25, $x28, $x29, $x30, $x31 + + renamable $x9 = ADD killed renamable $x20, killed renamable $x9 + renamable $x30 = ADD killed renamable $x30, killed renamable $x24 + renamable $x30 = ADD killed renamable $x9, killed renamable $x30 + renamable $x31 = ADD killed renamable $x31, killed renamable $x25 + renamable $x14 = ADD killed renamable $x21, killed renamable $x14 + renamable $x7 = ADD killed renamable $x31, killed renamable $x7 + renamable $x14 = ADD killed renamable $x14, killed renamable $x23 + renamable $x7 = ADD killed renamable $x30, killed renamable $x7 + renamable $x14 = ADD killed renamable $x14, killed renamable $x16 + renamable $x10 = SLTU $x0, killed renamable $x8 + renamable $x14 = ADD killed renamable $x7, killed renamable $x14 + renamable $x29 = ADD killed renamable $x29, killed renamable $x22 + renamable $x28 = ADD killed renamable $x28, killed renamable $x18 + renamable $x6 = ADD killed renamable $x29, killed renamable $x6 + renamable $x28 = ADD killed renamable $x28, killed renamable $x19 + renamable $x17 = ADD killed renamable $x6, killed renamable $x17 + renamable $x11 = ADD killed renamable $x28, killed renamable $x11 + renamable $x17 = ADD killed renamable $x17, killed renamable $x5 + renamable $x10 = ADD killed renamable $x11, killed renamable $x10 + renamable $x14 = ADD killed renamable $x14, killed renamable $x17 + renamable $x10 = ADD killed renamable $x10, killed renamable $x15 + renamable $x10 = ADDW killed renamable $x14, killed renamable $x10 + + bb.7.cleanup: + liveins: $x10 + + PseudoRET implicit $x10 + +... diff --git a/llvm/test/CodeGen/RISCV/stack-slot-coloring.mir b/llvm/test/CodeGen/RISCV/stack-slot-coloring.mir index 17bbcc2981bb8..1d223ccbdf5b4 100644 --- a/llvm/test/CodeGen/RISCV/stack-slot-coloring.mir +++ b/llvm/test/CodeGen/RISCV/stack-slot-coloring.mir @@ -49,8 +49,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: a, type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/RISCV/zcmp-prolog-epilog-crash.mir b/llvm/test/CodeGen/RISCV/zcmp-prolog-epilog-crash.mir index 6e5ac31f192de..14a3c2028eed6 100644 --- a/llvm/test/CodeGen/RISCV/zcmp-prolog-epilog-crash.mir +++ b/llvm/test/CodeGen/RISCV/zcmp-prolog-epilog-crash.mir @@ -38,8 +38,12 @@ liveins: frameInfo: maxAlignment: 1 localFrameSize: 32 - savePoint: '%bb.2' - restorePoint: '%bb.2' + savePoints: + - point: '%bb.2' + registers: [] + restorePoints: + - point: '%bb.2' + registers: [] stack: - { id: 0, size: 32, alignment: 1, local-offset: -32 } machineFunctionInfo: diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/add_reduce.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/add_reduce.mir index 870ee341a4fcd..c90e9e537b720 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/add_reduce.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/add_reduce.mir @@ -98,8 +98,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 24, size: 4, alignment: 8, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/begin-vpt-without-inst.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/begin-vpt-without-inst.mir index c5f9d32536688..e68ede55c6677 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/begin-vpt-without-inst.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/begin-vpt-without-inst.mir @@ -43,8 +43,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-default.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-default.mir index 647270bc0aad7..5d74496073e52 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-default.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-default.mir @@ -133,8 +133,8 @@ frameInfo: stackSize: 76 offsetAdjustment: 0 maxAlignment: 4 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -40, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-optsize-strd-lr.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-optsize-strd-lr.mir index d4bc80dde2545..68718622ff894 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-optsize-strd-lr.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-optsize-strd-lr.mir @@ -136,8 +136,8 @@ frameInfo: stackSize: 68 offsetAdjustment: 0 maxAlignment: 4 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -40, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-optsize.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-optsize.mir index e7f64cac75b33..8c5224d712f4f 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-optsize.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/biquad-cascade-optsize.mir @@ -138,8 +138,8 @@ frameInfo: offsetAdjustment: 0 maxAlignment: 4 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -40, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-mov.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-mov.mir index 615dd3f476545..716012e7d0555 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-mov.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/cond-mov.mir @@ -69,8 +69,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/disjoint-vcmp.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/disjoint-vcmp.mir index 9c2434da4b791..1614a3e9b5944 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/disjoint-vcmp.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/disjoint-vcmp.mir @@ -95,8 +95,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -20, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-ignore-vctp.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-ignore-vctp.mir index 59f5c8e4f14a3..bfc002491acd1 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-ignore-vctp.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-ignore-vctp.mir @@ -72,8 +72,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update.mir index 18fc66eeb262c..18b416555d8de 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/dont-remove-loop-update.mir @@ -88,8 +88,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/emptyblock.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/emptyblock.mir index 4998b5bafc133..9d05acb7cbba1 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/emptyblock.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/emptyblock.mir @@ -300,8 +300,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -76, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/end-positive-offset.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/end-positive-offset.mir index 9ebb714bc4eea..bb720f7f82464 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/end-positive-offset.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/end-positive-offset.mir @@ -82,8 +82,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -12, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/extract-element.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/extract-element.mir index cd5292310f168..dbd4b702bb5de 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/extract-element.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/extract-element.mir @@ -89,8 +89,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-16.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-16.mir index d95db905283c9..893ed93fb160f 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-16.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-16.mir @@ -80,8 +80,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-32.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-32.mir index 35effea71350d..74b7c56bd5f90 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-32.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-32.mir @@ -88,8 +88,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-8.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-8.mir index 71f8f20a37f78..e80bf22f80a2c 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-8.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/incorrect-sub-8.mir @@ -81,8 +81,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-1.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-1.mir index 40b557a5e6dec..4b32659e53dd0 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-1.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-1.mir @@ -102,8 +102,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 4, size: 4, alignment: 4, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-2.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-2.mir index 380c6957c3b1c..63e7e6adb9236 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-2.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-2.mir @@ -102,8 +102,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 4, size: 4, alignment: 4, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-3.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-3.mir index a81f2a557180f..ea5a7575662ae 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-3.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpnot-3.mir @@ -102,8 +102,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 4, size: 4, alignment: 4, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-1.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-1.mir index 45f0371660a56..ec402cba1a8b7 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-1.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-1.mir @@ -103,8 +103,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 4, alignment: 8, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-2.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-2.mir index 78a05c38b46fa..e0495b27fb6c4 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-2.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/inloop-vpsel-2.mir @@ -105,8 +105,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 4, alignment: 8, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-chain-store.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-chain-store.mir index 0c6c3330991d8..2cba06f1311e0 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-chain-store.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-chain-store.mir @@ -111,8 +111,8 @@ frameInfo: offsetAdjustment: 0 maxAlignment: 4 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -216,8 +216,8 @@ frameInfo: stackSize: 8 offsetAdjustment: 0 maxAlignment: 4 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-chain.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-chain.mir index 6f021dae228b7..285434d4db2e7 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-chain.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-chain.mir @@ -74,8 +74,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-itercount.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-itercount.mir index 1e1e2a4dda3e7..f6b01df6c2536 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-itercount.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-itercount.mir @@ -75,8 +75,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-random.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-random.mir index ea8a8a5b2ab06..3e2dac9d628ac 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-random.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/it-block-random.mir @@ -76,8 +76,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-copy-chain.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-copy-chain.mir index 9f027f9164752..e6d46138f1d8f 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-copy-chain.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-copy-chain.mir @@ -182,8 +182,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -40, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-copy-prev-iteration.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-copy-prev-iteration.mir index e0fd23130baf6..71c6764ebbdf0 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-copy-prev-iteration.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-copy-prev-iteration.mir @@ -183,8 +183,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -40, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-liveout.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-liveout.mir index 6b29018d28d63..8050d75379274 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-liveout.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/loop-dec-liveout.mir @@ -183,8 +183,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -40, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/lstp-insertion-position.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/lstp-insertion-position.mir index 6c67084dd02df..fc8d613578122 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/lstp-insertion-position.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/lstp-insertion-position.mir @@ -118,8 +118,8 @@ frameInfo: offsetAdjustment: 0 maxAlignment: 4 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -256,8 +256,8 @@ frameInfo: stackSize: 8 offsetAdjustment: 0 maxAlignment: 4 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/massive.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/massive.mir index 9448a1ab00d3e..4e0adbc5044ce 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/massive.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/massive.mir @@ -87,8 +87,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/matrix-debug.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/matrix-debug.mir index 2dfaf17326941..8f773d1d17ed8 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/matrix-debug.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/matrix-debug.mir @@ -168,8 +168,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/matrix.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/matrix.mir index cbed22ff10ef8..a5a7b8a886c6a 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/matrix.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/matrix.mir @@ -180,8 +180,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-after-dls.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-after-dls.mir index 29406adc596f4..35ea3afa99422 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-after-dls.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-after-dls.mir @@ -69,8 +69,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-after-dlstp.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-after-dlstp.mir index cc39f9850d959..c9598e669d8ca 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-after-dlstp.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-after-dlstp.mir @@ -125,8 +125,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-lr-terminator.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-lr-terminator.mir index 4f96e04f0fa89..b6189f1b151ed 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-lr-terminator.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mov-lr-terminator.mir @@ -83,8 +83,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-def-before-start.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-def-before-start.mir index 80dc97b52d79b..73daf2b826c29 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-def-before-start.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-def-before-start.mir @@ -88,8 +88,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-start-after-def.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-start-after-def.mir index 9d9170f1e6adf..8ba1585c92703 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-start-after-def.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/move-start-after-def.mir @@ -88,8 +88,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiblock-massive.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiblock-massive.mir index 06dae765c8e33..1396f129e8e07 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiblock-massive.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiblock-massive.mir @@ -87,8 +87,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiple-do-loops.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiple-do-loops.mir index 8e5172cadc329..bd12c6af201eb 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiple-do-loops.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/multiple-do-loops.mir @@ -316,8 +316,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -531,8 +531,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -751,8 +751,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-reduct-livein-arg.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-reduct-livein-arg.mir index e36a8e2b8c666..db8bbd246d797 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-reduct-livein-arg.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/mve-reduct-livein-arg.mir @@ -97,8 +97,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-cbnz.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-cbnz.mir index 15719baece36f..8aa19efed7d3d 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-cbnz.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-cbnz.mir @@ -99,8 +99,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-reorder.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-reorder.mir index fc88475399a74..3419ceaef7ffe 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-reorder.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-reorder.mir @@ -98,8 +98,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec.mir index a80f4e9ffae60..963a9be3c942d 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-dec.mir @@ -102,8 +102,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-vpsel-liveout.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-vpsel-liveout.mir index ab47e5a181eb0..d3829d6595aa9 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-vpsel-liveout.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/no-vpsel-liveout.mir @@ -86,8 +86,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/non-masked-load.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/non-masked-load.mir index 5279f13bfc876..7de3ee669bf0f 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/non-masked-load.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/non-masked-load.mir @@ -91,8 +91,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/non-masked-store.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/non-masked-store.mir index 1b7fec49238ab..32e4bc1888755 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/non-masked-store.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/non-masked-store.mir @@ -83,8 +83,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/out-of-range-cbz.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/out-of-range-cbz.mir index eb10cd7692cc4..e402689df0bf1 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/out-of-range-cbz.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/out-of-range-cbz.mir @@ -144,8 +144,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/remove-elem-moves.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/remove-elem-moves.mir index 345fec361c69c..730d213bb73dc 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/remove-elem-moves.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/remove-elem-moves.mir @@ -118,8 +118,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-after-call.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-after-call.mir index 1fe361d478a3e..32e419f59d634 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-after-call.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-after-call.mir @@ -71,8 +71,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-after-read.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-after-read.mir index cd590c98894e9..8a4fbf3e787ab 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-after-read.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-after-read.mir @@ -67,8 +67,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-after-write.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-after-write.mir index 78d52eb4106d9..b61f645731d0c 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-after-write.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-after-write.mir @@ -73,8 +73,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-non-header.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-non-header.mir index eec1c3973923f..3ac29dcea6a49 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-non-header.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-non-header.mir @@ -136,8 +136,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-non-loop.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-non-loop.mir index 1c1d21daf0375..e3ee7ce5bc453 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-non-loop.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-non-loop.mir @@ -89,8 +89,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-while.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-while.mir index 3a55b4905ec56..7fd32c7bb20d8 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-while.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/revert-while.mir @@ -77,8 +77,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/safe-def-no-mov.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/safe-def-no-mov.mir index 4ee131d1d46ec..fdfb86322bf0b 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/safe-def-no-mov.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/safe-def-no-mov.mir @@ -74,8 +74,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/safe-retaining.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/safe-retaining.mir index 8e172f1553fc8..756b8d61996e0 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/safe-retaining.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/safe-retaining.mir @@ -98,7 +98,7 @@ frameInfo: stackSize: 8 offsetAdjustment: 0 maxAlignment: 4 - restorePoint: '' + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 4, alignment: 8, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/size-limit.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/size-limit.mir index 8406720f02928..7dd1c1ff63324 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/size-limit.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/size-limit.mir @@ -87,8 +87,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/skip-debug.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/skip-debug.mir index 43287b3c5f03b..ce256a62a4442 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/skip-debug.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/skip-debug.mir @@ -145,8 +145,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/skip-vpt-debug.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/skip-vpt-debug.mir index a11d5e70876ab..7f9545aefdbbb 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/skip-vpt-debug.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/skip-vpt-debug.mir @@ -156,8 +156,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/switch.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/switch.mir index 9b369cb38fe1a..b843664d677dc 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/switch.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/switch.mir @@ -101,8 +101,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unrolled-and-vector.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unrolled-and-vector.mir index 0b50c2df4c658..a5a678ceb16c1 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unrolled-and-vector.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unrolled-and-vector.mir @@ -197,8 +197,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-cpsr-loop-def.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-cpsr-loop-def.mir index f2eef49c02f9c..426e8143a69cf 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-cpsr-loop-def.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-cpsr-loop-def.mir @@ -74,8 +74,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-cpsr-loop-use.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-cpsr-loop-use.mir index f847e6afd69ac..326f5a2de2dbf 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-cpsr-loop-use.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-cpsr-loop-use.mir @@ -74,8 +74,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-use-after.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-use-after.mir index ebae1717fcf81..ab316a8a0efae 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-use-after.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/unsafe-use-after.mir @@ -72,8 +72,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vaddv.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vaddv.mir index 9acbeb2c1ea07..7a877ea0856d7 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vaddv.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vaddv.mir @@ -828,8 +828,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -933,8 +933,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -1038,8 +1038,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -1142,8 +1142,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -1259,8 +1259,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -1376,8 +1376,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -1506,8 +1506,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -1623,8 +1623,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -1753,8 +1753,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 16, alignment: 8, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, @@ -1882,8 +1882,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 8, alignment: 8, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, @@ -2021,8 +2021,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 16, alignment: 8, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, @@ -2149,8 +2149,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 8, alignment: 8, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, @@ -2288,8 +2288,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 16, alignment: 8, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, @@ -2416,8 +2416,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 8, alignment: 8, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, @@ -2555,8 +2555,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 16, alignment: 8, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, @@ -2683,8 +2683,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 8, alignment: 8, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, @@ -2822,8 +2822,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -2945,8 +2945,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -3070,8 +3070,8 @@ frameInfo: maxCallFrameSize: 0 cvBytesOfCalleeSavedRegisters: 0 localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-add-operand-liveout.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-add-operand-liveout.mir index 08b71c43b51d3..4123615cb64a6 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-add-operand-liveout.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-add-operand-liveout.mir @@ -93,8 +93,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt-2.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt-2.mir index d634e6a7ff7b8..14084c41977be 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt-2.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt-2.mir @@ -85,8 +85,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -12, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt.mir index 7164ff9a9a21e..1b3b1f5f03174 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-in-vpt.mir @@ -116,8 +116,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -12, size: 4, alignment: 4, @@ -256,8 +256,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -12, size: 4, alignment: 4, @@ -404,8 +404,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -12, size: 4, alignment: 4, @@ -552,8 +552,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -12, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subi3.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subi3.mir index 7d42b407517bd..abc3b5d6d5fc6 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subi3.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subi3.mir @@ -83,8 +83,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri.mir index 2b2999f81a2e8..d91f27ff68fbe 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri.mir @@ -82,8 +82,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri12.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri12.mir index 9f8c6dab8c468..69c1a648df579 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri12.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp-subri12.mir @@ -82,8 +82,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp16-reduce.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp16-reduce.mir index 74039faa45e8e..ab071fe132013 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp16-reduce.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vctp16-reduce.mir @@ -92,8 +92,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vmaxmin_vpred_r.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vmaxmin_vpred_r.mir index c89ecd3d0bba8..58786360d2ea9 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vmaxmin_vpred_r.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vmaxmin_vpred_r.mir @@ -94,8 +94,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 24, size: 4, alignment: 8, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vmldava_in_vpt.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vmldava_in_vpt.mir index c260c3a89dc4c..d629289499223 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vmldava_in_vpt.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vmldava_in_vpt.mir @@ -95,8 +95,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 20, size: 4, alignment: 4, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vpt-block-debug.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vpt-block-debug.mir index 26e7b8041a233..41a0e67ead7d9 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vpt-block-debug.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vpt-block-debug.mir @@ -243,8 +243,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 8, size: 4, alignment: 8, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vpt-blocks.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vpt-blocks.mir index 284282023170a..3c44f60f6fdc8 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vpt-blocks.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/vpt-blocks.mir @@ -195,8 +195,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -320,8 +320,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -454,8 +454,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -586,8 +586,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -709,8 +709,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -831,8 +831,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -948,8 +948,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/while-negative-offset.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/while-negative-offset.mir index a6ae8bc75a99e..15f3e574dde7c 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/while-negative-offset.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/while-negative-offset.mir @@ -90,8 +90,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -12, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/while.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/while.mir index bc739dea40ef6..5ccc1f326d4e2 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/while.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/while.mir @@ -74,8 +74,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wlstp.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wlstp.mir index 8076caa563a30..408b85eebb8f9 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wlstp.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wlstp.mir @@ -173,8 +173,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -295,8 +295,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, @@ -403,8 +403,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-liveout-lsr-shift.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-liveout-lsr-shift.mir index 3e1fd796d6ed0..45165840aa85f 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-liveout-lsr-shift.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-liveout-lsr-shift.mir @@ -92,8 +92,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-opcode-liveout.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-opcode-liveout.mir index 2aab1ed916e76..411dffcd6e45a 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-opcode-liveout.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-opcode-liveout.mir @@ -98,8 +98,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-operand-liveout.mir b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-operand-liveout.mir index b0a0ccbd66e12..1c8cc5b2acd17 100644 --- a/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-operand-liveout.mir +++ b/llvm/test/CodeGen/Thumb2/LowOverheadLoops/wrong-vctp-operand-liveout.mir @@ -90,8 +90,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/bti-pac-replace-1.mir b/llvm/test/CodeGen/Thumb2/bti-pac-replace-1.mir index a043c42c8644c..654a0d08d8947 100644 --- a/llvm/test/CodeGen/Thumb2/bti-pac-replace-1.mir +++ b/llvm/test/CodeGen/Thumb2/bti-pac-replace-1.mir @@ -44,8 +44,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/Thumb2/ifcvt-neon-deprecated.mir b/llvm/test/CodeGen/Thumb2/ifcvt-neon-deprecated.mir index 1f5edb0c78b91..74132a4b946c8 100644 --- a/llvm/test/CodeGen/Thumb2/ifcvt-neon-deprecated.mir +++ b/llvm/test/CodeGen/Thumb2/ifcvt-neon-deprecated.mir @@ -55,8 +55,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks-1-pred.mir b/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks-1-pred.mir index 074c95986e6da..653cff8484325 100644 --- a/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks-1-pred.mir +++ b/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks-1-pred.mir @@ -53,8 +53,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks-2-preds.mir b/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks-2-preds.mir index 567f23bed1af4..3280f463ae497 100644 --- a/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks-2-preds.mir +++ b/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks-2-preds.mir @@ -55,8 +55,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks-ctrl-flow.mir b/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks-ctrl-flow.mir index a66f9f9393810..2d07be82a3fdf 100644 --- a/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks-ctrl-flow.mir +++ b/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks-ctrl-flow.mir @@ -57,8 +57,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks-non-consecutive-ins.mir b/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks-non-consecutive-ins.mir index 15508351ea33e..d131ad955f39e 100644 --- a/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks-non-consecutive-ins.mir +++ b/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks-non-consecutive-ins.mir @@ -55,8 +55,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks.mir b/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks.mir index 1f0b095eec2b3..f241cc49f3f67 100644 --- a/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks.mir +++ b/llvm/test/CodeGen/Thumb2/mve-vpt-2-blocks.mir @@ -57,8 +57,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/Thumb2/mve-vpt-3-blocks-kill-vpr.mir b/llvm/test/CodeGen/Thumb2/mve-vpt-3-blocks-kill-vpr.mir index 40c333718ee74..fdad28d25c298 100644 --- a/llvm/test/CodeGen/Thumb2/mve-vpt-3-blocks-kill-vpr.mir +++ b/llvm/test/CodeGen/Thumb2/mve-vpt-3-blocks-kill-vpr.mir @@ -55,8 +55,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/Thumb2/mve-vpt-block-1-ins.mir b/llvm/test/CodeGen/Thumb2/mve-vpt-block-1-ins.mir index 67469e50a5c3b..a9b7f3885b55e 100644 --- a/llvm/test/CodeGen/Thumb2/mve-vpt-block-1-ins.mir +++ b/llvm/test/CodeGen/Thumb2/mve-vpt-block-1-ins.mir @@ -53,8 +53,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/Thumb2/mve-vpt-block-2-ins.mir b/llvm/test/CodeGen/Thumb2/mve-vpt-block-2-ins.mir index 54621bd307de6..0197711e5c282 100644 --- a/llvm/test/CodeGen/Thumb2/mve-vpt-block-2-ins.mir +++ b/llvm/test/CodeGen/Thumb2/mve-vpt-block-2-ins.mir @@ -55,8 +55,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/Thumb2/mve-vpt-block-4-ins.mir b/llvm/test/CodeGen/Thumb2/mve-vpt-block-4-ins.mir index 02e50a36284d3..15da87cc1d033 100644 --- a/llvm/test/CodeGen/Thumb2/mve-vpt-block-4-ins.mir +++ b/llvm/test/CodeGen/Thumb2/mve-vpt-block-4-ins.mir @@ -56,8 +56,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/Thumb2/mve-vpt-block-elses.mir b/llvm/test/CodeGen/Thumb2/mve-vpt-block-elses.mir index aa46ea145f4e2..cb00b8d556272 100644 --- a/llvm/test/CodeGen/Thumb2/mve-vpt-block-elses.mir +++ b/llvm/test/CodeGen/Thumb2/mve-vpt-block-elses.mir @@ -56,8 +56,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/Thumb2/mve-vpt-block-fold-vcmp.mir b/llvm/test/CodeGen/Thumb2/mve-vpt-block-fold-vcmp.mir index e583df903d3ed..1bab116202fe1 100644 --- a/llvm/test/CodeGen/Thumb2/mve-vpt-block-fold-vcmp.mir +++ b/llvm/test/CodeGen/Thumb2/mve-vpt-block-fold-vcmp.mir @@ -66,8 +66,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 12, size: 4, alignment: 4, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, diff --git a/llvm/test/CodeGen/Thumb2/mve-vpt-block-optnone.mir b/llvm/test/CodeGen/Thumb2/mve-vpt-block-optnone.mir index df56c9506698b..c6a79874825d9 100644 --- a/llvm/test/CodeGen/Thumb2/mve-vpt-block-optnone.mir +++ b/llvm/test/CodeGen/Thumb2/mve-vpt-block-optnone.mir @@ -53,8 +53,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/Thumb2/mve-vpt-preuse.mir b/llvm/test/CodeGen/Thumb2/mve-vpt-preuse.mir index 3499916bed912..14b1d29a6002b 100644 --- a/llvm/test/CodeGen/Thumb2/mve-vpt-preuse.mir +++ b/llvm/test/CodeGen/Thumb2/mve-vpt-preuse.mir @@ -51,8 +51,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/Thumb2/pipeliner-preserve-ties.mir b/llvm/test/CodeGen/Thumb2/pipeliner-preserve-ties.mir index 6983c6f97cc81..a71716a4d80f7 100644 --- a/llvm/test/CodeGen/Thumb2/pipeliner-preserve-ties.mir +++ b/llvm/test/CodeGen/Thumb2/pipeliner-preserve-ties.mir @@ -157,8 +157,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/VE/Scalar/fold-imm-addsl.mir b/llvm/test/CodeGen/VE/Scalar/fold-imm-addsl.mir index a3e374a46dc94..d821262e34b74 100644 --- a/llvm/test/CodeGen/VE/Scalar/fold-imm-addsl.mir +++ b/llvm/test/CodeGen/VE/Scalar/fold-imm-addsl.mir @@ -35,8 +35,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] @@ -90,8 +90,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] @@ -145,8 +145,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] @@ -200,8 +200,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/VE/Scalar/fold-imm-cmpsl.mir b/llvm/test/CodeGen/VE/Scalar/fold-imm-cmpsl.mir index aab3d5bfcd7d3..a28cf50c00e6d 100644 --- a/llvm/test/CodeGen/VE/Scalar/fold-imm-cmpsl.mir +++ b/llvm/test/CodeGen/VE/Scalar/fold-imm-cmpsl.mir @@ -35,8 +35,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] @@ -90,8 +90,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/WebAssembly/multivalue-dont-move-def-past-use.mir b/llvm/test/CodeGen/WebAssembly/multivalue-dont-move-def-past-use.mir index eb9dfa9dfa60d..84d3180ab42d9 100644 --- a/llvm/test/CodeGen/WebAssembly/multivalue-dont-move-def-past-use.mir +++ b/llvm/test/CodeGen/WebAssembly/multivalue-dont-move-def-past-use.mir @@ -73,8 +73,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/X86/PR37310.mir b/llvm/test/CodeGen/X86/PR37310.mir index 6c68f79661bec..1190f9ae6a136 100644 --- a/llvm/test/CodeGen/X86/PR37310.mir +++ b/llvm/test/CodeGen/X86/PR37310.mir @@ -97,8 +97,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: q, type: default, offset: 0, size: 512, alignment: 16, diff --git a/llvm/test/CodeGen/X86/StackColoring-use-between-allocas.mir b/llvm/test/CodeGen/X86/StackColoring-use-between-allocas.mir index b820541da2be5..a2cf546b36113 100644 --- a/llvm/test/CodeGen/X86/StackColoring-use-between-allocas.mir +++ b/llvm/test/CodeGen/X86/StackColoring-use-between-allocas.mir @@ -118,8 +118,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: a, type: default, offset: 0, size: 1, alignment: 8, diff --git a/llvm/test/CodeGen/X86/align-basic-block-sections.mir b/llvm/test/CodeGen/X86/align-basic-block-sections.mir index 7521341ff3ea0..973e5ad59ae66 100644 --- a/llvm/test/CodeGen/X86/align-basic-block-sections.mir +++ b/llvm/test/CodeGen/X86/align-basic-block-sections.mir @@ -83,8 +83,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/X86/amx_tile_pair_configure_O0.mir b/llvm/test/CodeGen/X86/amx_tile_pair_configure_O0.mir index dc79134321e9c..6265e727a72a4 100644 --- a/llvm/test/CodeGen/X86/amx_tile_pair_configure_O0.mir +++ b/llvm/test/CodeGen/X86/amx_tile_pair_configure_O0.mir @@ -43,8 +43,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: default, offset: 0, size: 8, alignment: 8, diff --git a/llvm/test/CodeGen/X86/amx_tile_pair_configure_O2.mir b/llvm/test/CodeGen/X86/amx_tile_pair_configure_O2.mir index e62a52162d523..88d2bb0fb7cc9 100644 --- a/llvm/test/CodeGen/X86/amx_tile_pair_configure_O2.mir +++ b/llvm/test/CodeGen/X86/amx_tile_pair_configure_O2.mir @@ -93,8 +93,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: default, offset: 0, size: 64, alignment: 4, diff --git a/llvm/test/CodeGen/X86/amx_tile_pair_copy.mir b/llvm/test/CodeGen/X86/amx_tile_pair_copy.mir index 857ad433af153..8b5258f7e8452 100644 --- a/llvm/test/CodeGen/X86/amx_tile_pair_copy.mir +++ b/llvm/test/CodeGen/X86/amx_tile_pair_copy.mir @@ -46,8 +46,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 43, name: '', type: default, offset: 0, size: 64, alignment: 4, diff --git a/llvm/test/CodeGen/X86/amx_tile_pair_preconfigure_O0.mir b/llvm/test/CodeGen/X86/amx_tile_pair_preconfigure_O0.mir index cdc525193fef7..359e6e2df78e5 100644 --- a/llvm/test/CodeGen/X86/amx_tile_pair_preconfigure_O0.mir +++ b/llvm/test/CodeGen/X86/amx_tile_pair_preconfigure_O0.mir @@ -59,8 +59,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 18, name: '', type: default, offset: 0, size: 8, alignment: 8, diff --git a/llvm/test/CodeGen/X86/amx_tile_pair_preconfigure_O2.mir b/llvm/test/CodeGen/X86/amx_tile_pair_preconfigure_O2.mir index a9824dcac6b04..43ad6fd8d976f 100644 --- a/llvm/test/CodeGen/X86/amx_tile_pair_preconfigure_O2.mir +++ b/llvm/test/CodeGen/X86/amx_tile_pair_preconfigure_O2.mir @@ -57,8 +57,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/X86/apx/domain-reassignment.mir b/llvm/test/CodeGen/X86/apx/domain-reassignment.mir index 49af7a6c949a1..47997288afcba 100644 --- a/llvm/test/CodeGen/X86/apx/domain-reassignment.mir +++ b/llvm/test/CodeGen/X86/apx/domain-reassignment.mir @@ -109,8 +109,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -255,8 +255,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -375,8 +375,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -487,8 +487,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -590,8 +590,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -686,8 +686,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -756,8 +756,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -829,8 +829,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -911,8 +911,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] entry_values: [] diff --git a/llvm/test/CodeGen/X86/apx/memfold-nd2rmw.mir b/llvm/test/CodeGen/X86/apx/memfold-nd2rmw.mir index 4718dfd597d2a..17e103113bd48 100644 --- a/llvm/test/CodeGen/X86/apx/memfold-nd2rmw.mir +++ b/llvm/test/CodeGen/X86/apx/memfold-nd2rmw.mir @@ -125,8 +125,8 @@ frameInfo: hasTailCall: false isCalleeSavedInfoValid: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 1, alignment: 16, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, diff --git a/llvm/test/CodeGen/X86/attr-function-return.mir b/llvm/test/CodeGen/X86/attr-function-return.mir index 91c03e862182f..3af3afe63c376 100644 --- a/llvm/test/CodeGen/X86/attr-function-return.mir +++ b/llvm/test/CodeGen/X86/attr-function-return.mir @@ -45,8 +45,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/X86/avoid-sfb-g-no-change.mir b/llvm/test/CodeGen/X86/avoid-sfb-g-no-change.mir index 93292990dee02..ef2ff56261894 100644 --- a/llvm/test/CodeGen/X86/avoid-sfb-g-no-change.mir +++ b/llvm/test/CodeGen/X86/avoid-sfb-g-no-change.mir @@ -127,8 +127,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] @@ -185,8 +185,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/X86/avoid-sfb-g-no-change2.mir b/llvm/test/CodeGen/X86/avoid-sfb-g-no-change2.mir index 4da4f03987672..a2d1c952715ff 100644 --- a/llvm/test/CodeGen/X86/avoid-sfb-g-no-change2.mir +++ b/llvm/test/CodeGen/X86/avoid-sfb-g-no-change2.mir @@ -138,8 +138,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/X86/avoid-sfb-g-no-change3.mir b/llvm/test/CodeGen/X86/avoid-sfb-g-no-change3.mir index 19e3f38c56b78..729e25ad4641f 100644 --- a/llvm/test/CodeGen/X86/avoid-sfb-g-no-change3.mir +++ b/llvm/test/CodeGen/X86/avoid-sfb-g-no-change3.mir @@ -154,8 +154,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/X86/avoid-sfb-offset.mir b/llvm/test/CodeGen/X86/avoid-sfb-offset.mir index 978b3e79dcb25..31cb9985c4dca 100644 --- a/llvm/test/CodeGen/X86/avoid-sfb-offset.mir +++ b/llvm/test/CodeGen/X86/avoid-sfb-offset.mir @@ -67,8 +67,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: a, type: default, offset: 0, size: 144, alignment: 16, diff --git a/llvm/test/CodeGen/X86/avx512f-256-set0.mir b/llvm/test/CodeGen/X86/avx512f-256-set0.mir index 3915599df524d..681879f941260 100644 --- a/llvm/test/CodeGen/X86/avx512f-256-set0.mir +++ b/llvm/test/CodeGen/X86/avx512f-256-set0.mir @@ -52,8 +52,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] constants: [] diff --git a/llvm/test/CodeGen/X86/basic-block-address-map-mir-parse.mir b/llvm/test/CodeGen/X86/basic-block-address-map-mir-parse.mir index 86f5f27494ec4..9c8bf5302fdf8 100644 --- a/llvm/test/CodeGen/X86/basic-block-address-map-mir-parse.mir +++ b/llvm/test/CodeGen/X86/basic-block-address-map-mir-parse.mir @@ -93,8 +93,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: spill-slot, offset: -16, size: 8, alignment: 16, stack-id: default, callee-saved-register: '', callee-saved-restored: true, debug-info-variable: '', diff --git a/llvm/test/CodeGen/X86/basic-block-sections-mir-parse.mir b/llvm/test/CodeGen/X86/basic-block-sections-mir-parse.mir index 967622a11cd2b..c83588e20d0fa 100644 --- a/llvm/test/CodeGen/X86/basic-block-sections-mir-parse.mir +++ b/llvm/test/CodeGen/X86/basic-block-sections-mir-parse.mir @@ -70,8 +70,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: spill-slot, offset: -16, size: 8, alignment: 16, stack-id: default, callee-saved-register: '', callee-saved-restored: true, debug-info-variable: '', diff --git a/llvm/test/CodeGen/X86/break-false-dep-crash.mir b/llvm/test/CodeGen/X86/break-false-dep-crash.mir index 588fbfb136dd4..c8b5465c8e2aa 100644 --- a/llvm/test/CodeGen/X86/break-false-dep-crash.mir +++ b/llvm/test/CodeGen/X86/break-false-dep-crash.mir @@ -93,8 +93,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/X86/callbr-asm-outputs-regallocfast.mir b/llvm/test/CodeGen/X86/callbr-asm-outputs-regallocfast.mir index 6263a3f09b0d3..53041926257b9 100644 --- a/llvm/test/CodeGen/X86/callbr-asm-outputs-regallocfast.mir +++ b/llvm/test/CodeGen/X86/callbr-asm-outputs-regallocfast.mir @@ -96,8 +96,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: retval, type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/X86/cf-opt-memops.mir b/llvm/test/CodeGen/X86/cf-opt-memops.mir index 44dead87d2e1c..3b76741029d09 100644 --- a/llvm/test/CodeGen/X86/cf-opt-memops.mir +++ b/llvm/test/CodeGen/X86/cf-opt-memops.mir @@ -68,8 +68,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/X86/cfi-epilogue-with-return.mir b/llvm/test/CodeGen/X86/cfi-epilogue-with-return.mir index 583e54b097faf..87119a500b6f0 100644 --- a/llvm/test/CodeGen/X86/cfi-epilogue-with-return.mir +++ b/llvm/test/CodeGen/X86/cfi-epilogue-with-return.mir @@ -21,8 +21,22 @@ liveins: frameInfo: maxAlignment: 1 hasCalls: true - savePoint: '%bb.1' - restorePoint: '%bb.1' + savePoints: + - point: '%bb.1' + registers: + - '$rbx' + - '$r12' + - '$r13' + - '$r14' + - '$r15' + restorePoints: + - point: '%bb.1' + registers: + - '$rbx' + - '$r12' + - '$r13' + - '$r14' + - '$r15' machineFunctionInfo: {} body: | bb.0: diff --git a/llvm/test/CodeGen/X86/cfi-epilogue-without-return.mir b/llvm/test/CodeGen/X86/cfi-epilogue-without-return.mir index 8f04721489608..b701569b8ad7d 100644 --- a/llvm/test/CodeGen/X86/cfi-epilogue-without-return.mir +++ b/llvm/test/CodeGen/X86/cfi-epilogue-without-return.mir @@ -28,8 +28,22 @@ liveins: frameInfo: maxAlignment: 1 hasCalls: true - savePoint: '%bb.1' - restorePoint: '%bb.1' + savePoints: + - point: '%bb.1' + registers: + - '$rbx' + - '$r12' + - '$r13' + - '$r14' + - '$r15' + restorePoints: + - point: '%bb.1' + registers: + - '$rbx' + - '$r12' + - '$r13' + - '$r14' + - '$r15' machineFunctionInfo: {} body: | bb.0: diff --git a/llvm/test/CodeGen/X86/conditional-tailcall-samedest.mir b/llvm/test/CodeGen/X86/conditional-tailcall-samedest.mir index e2f5b67f3114b..55e50331b8113 100644 --- a/llvm/test/CodeGen/X86/conditional-tailcall-samedest.mir +++ b/llvm/test/CodeGen/X86/conditional-tailcall-samedest.mir @@ -94,8 +94,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/X86/cse-two-preds.mir b/llvm/test/CodeGen/X86/cse-two-preds.mir index e6f04a6ce66d4..54e725b65678e 100644 --- a/llvm/test/CodeGen/X86/cse-two-preds.mir +++ b/llvm/test/CodeGen/X86/cse-two-preds.mir @@ -85,8 +85,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/X86/domain-reassignment.mir b/llvm/test/CodeGen/X86/domain-reassignment.mir index fc0f32c7d4a94..abc75051018b1 100644 --- a/llvm/test/CodeGen/X86/domain-reassignment.mir +++ b/llvm/test/CodeGen/X86/domain-reassignment.mir @@ -109,8 +109,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -255,8 +255,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -375,8 +375,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -487,8 +487,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -590,8 +590,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -686,8 +686,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -756,8 +756,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -829,8 +829,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: @@ -911,8 +911,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] entry_values: [] diff --git a/llvm/test/CodeGen/X86/movtopush.mir b/llvm/test/CodeGen/X86/movtopush.mir index f92c385274be6..3bd847ada6df0 100644 --- a/llvm/test/CodeGen/X86/movtopush.mir +++ b/llvm/test/CodeGen/X86/movtopush.mir @@ -83,8 +83,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: p, type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/X86/peephole-test-after-add.mir b/llvm/test/CodeGen/X86/peephole-test-after-add.mir index 5023c966d6a84..7febfa21fcb0c 100644 --- a/llvm/test/CodeGen/X86/peephole-test-after-add.mir +++ b/llvm/test/CodeGen/X86/peephole-test-after-add.mir @@ -293,8 +293,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] entry_values: [] @@ -418,8 +418,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] entry_values: [] @@ -544,8 +544,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] entry_values: [] diff --git a/llvm/test/CodeGen/X86/pr30821.mir b/llvm/test/CodeGen/X86/pr30821.mir index 992ef8bbe55f0..0d15439c82533 100644 --- a/llvm/test/CodeGen/X86/pr30821.mir +++ b/llvm/test/CodeGen/X86/pr30821.mir @@ -41,8 +41,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: alpha, type: default, offset: 0, size: 1, alignment: 1, diff --git a/llvm/test/CodeGen/X86/pr38952.mir b/llvm/test/CodeGen/X86/pr38952.mir index d67174aa4847c..b6a5fb32da247 100644 --- a/llvm/test/CodeGen/X86/pr38952.mir +++ b/llvm/test/CodeGen/X86/pr38952.mir @@ -59,8 +59,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/CodeGen/X86/pr48064.mir b/llvm/test/CodeGen/X86/pr48064.mir index 9712a3ca27aa4..b3b54c12b2c71 100644 --- a/llvm/test/CodeGen/X86/pr48064.mir +++ b/llvm/test/CodeGen/X86/pr48064.mir @@ -236,8 +236,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 4, alignment: 4, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, @@ -292,8 +292,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: zx, type: default, offset: 0, size: 16, alignment: 4, @@ -403,8 +403,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 0, size: 4, alignment: 4, stack-id: default, isImmutable: false, isAliased: false, callee-saved-register: '', diff --git a/llvm/test/CodeGen/X86/scheduler-asm-moves.mir b/llvm/test/CodeGen/X86/scheduler-asm-moves.mir index 87a56a3802145..d08dbaf66add3 100644 --- a/llvm/test/CodeGen/X86/scheduler-asm-moves.mir +++ b/llvm/test/CodeGen/X86/scheduler-asm-moves.mir @@ -106,8 +106,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: true localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/X86/shrink_wrap_dbg_value.mir b/llvm/test/CodeGen/X86/shrink_wrap_dbg_value.mir index aa7befc18d4fe..ad2562d99f6d7 100644 --- a/llvm/test/CodeGen/X86/shrink_wrap_dbg_value.mir +++ b/llvm/test/CodeGen/X86/shrink_wrap_dbg_value.mir @@ -119,10 +119,12 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - # CHECK: savePoint: '%bb.1' - # CHECK: restorePoint: '%bb.3' - savePoint: '' - restorePoint: '' + # CHECK: savePoints: + # CHECK-NEXT: - point: '%bb.1' + # CHECK: restorePoints: + # CHECK-NEXT: - point: '%bb.3' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 4, size: 4, alignment: 4, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true } diff --git a/llvm/test/CodeGen/X86/statepoint-fixup-call.mir b/llvm/test/CodeGen/X86/statepoint-fixup-call.mir index 6ab95c2ebd0c9..9fbeec7e15cfd 100644 --- a/llvm/test/CodeGen/X86/statepoint-fixup-call.mir +++ b/llvm/test/CodeGen/X86/statepoint-fixup-call.mir @@ -57,8 +57,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/X86/statepoint-fixup-copy-prop-neg.mir b/llvm/test/CodeGen/X86/statepoint-fixup-copy-prop-neg.mir index c87b287241518..cb9df8e8ba812 100644 --- a/llvm/test/CodeGen/X86/statepoint-fixup-copy-prop-neg.mir +++ b/llvm/test/CodeGen/X86/statepoint-fixup-copy-prop-neg.mir @@ -58,8 +58,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: default, offset: 0, size: 8, alignment: 8, diff --git a/llvm/test/CodeGen/X86/statepoint-fixup-invoke.mir b/llvm/test/CodeGen/X86/statepoint-fixup-invoke.mir index f29dbfaf0622a..861a3f516e965 100644 --- a/llvm/test/CodeGen/X86/statepoint-fixup-invoke.mir +++ b/llvm/test/CodeGen/X86/statepoint-fixup-invoke.mir @@ -75,8 +75,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/X86/statepoint-fixup-shared-ehpad.mir b/llvm/test/CodeGen/X86/statepoint-fixup-shared-ehpad.mir index d16c3d93cfc20..c8a45c83c8218 100644 --- a/llvm/test/CodeGen/X86/statepoint-fixup-shared-ehpad.mir +++ b/llvm/test/CodeGen/X86/statepoint-fixup-shared-ehpad.mir @@ -92,8 +92,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/X86/statepoint-fixup-undef-def.mir b/llvm/test/CodeGen/X86/statepoint-fixup-undef-def.mir index 7c48625e99353..72fbedc9d19b5 100644 --- a/llvm/test/CodeGen/X86/statepoint-fixup-undef-def.mir +++ b/llvm/test/CodeGen/X86/statepoint-fixup-undef-def.mir @@ -72,8 +72,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: default, offset: 0, size: 8, alignment: 8, diff --git a/llvm/test/CodeGen/X86/statepoint-fixup-undef.mir b/llvm/test/CodeGen/X86/statepoint-fixup-undef.mir index 4a18351bde493..203ac57e7a3ff 100644 --- a/llvm/test/CodeGen/X86/statepoint-fixup-undef.mir +++ b/llvm/test/CodeGen/X86/statepoint-fixup-undef.mir @@ -70,8 +70,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: default, offset: 0, size: 8, alignment: 8, diff --git a/llvm/test/CodeGen/X86/statepoint-invoke-ra-enter-at-end.mir b/llvm/test/CodeGen/X86/statepoint-invoke-ra-enter-at-end.mir index 5f05270729fde..687d8f8ed6ee5 100644 --- a/llvm/test/CodeGen/X86/statepoint-invoke-ra-enter-at-end.mir +++ b/llvm/test/CodeGen/X86/statepoint-invoke-ra-enter-at-end.mir @@ -241,8 +241,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/X86/statepoint-invoke-ra-hoist-copies.mir b/llvm/test/CodeGen/X86/statepoint-invoke-ra-hoist-copies.mir index cf9128260f196..d16fd97b228d5 100644 --- a/llvm/test/CodeGen/X86/statepoint-invoke-ra-hoist-copies.mir +++ b/llvm/test/CodeGen/X86/statepoint-invoke-ra-hoist-copies.mir @@ -408,8 +408,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/X86/statepoint-invoke-ra-inline-spiller.mir b/llvm/test/CodeGen/X86/statepoint-invoke-ra-inline-spiller.mir index fcebc69d9b2e3..6c5e41375377b 100644 --- a/llvm/test/CodeGen/X86/statepoint-invoke-ra-inline-spiller.mir +++ b/llvm/test/CodeGen/X86/statepoint-invoke-ra-inline-spiller.mir @@ -185,8 +185,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/X86/statepoint-invoke-ra-remove-back-copies.mir b/llvm/test/CodeGen/X86/statepoint-invoke-ra-remove-back-copies.mir index 8bb39a03f7e36..099e4a5cd7b8e 100644 --- a/llvm/test/CodeGen/X86/statepoint-invoke-ra-remove-back-copies.mir +++ b/llvm/test/CodeGen/X86/statepoint-invoke-ra-remove-back-copies.mir @@ -236,8 +236,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/X86/statepoint-invoke-ra.mir b/llvm/test/CodeGen/X86/statepoint-invoke-ra.mir index da651039ce21e..a2dcb9aabe7bf 100644 --- a/llvm/test/CodeGen/X86/statepoint-invoke-ra.mir +++ b/llvm/test/CodeGen/X86/statepoint-invoke-ra.mir @@ -182,8 +182,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/CodeGen/X86/statepoint-vreg-folding.mir b/llvm/test/CodeGen/X86/statepoint-vreg-folding.mir index d40a9a06d1620..8a0dc0aa81316 100644 --- a/llvm/test/CodeGen/X86/statepoint-vreg-folding.mir +++ b/llvm/test/CodeGen/X86/statepoint-vreg-folding.mir @@ -123,8 +123,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: 16, size: 8, alignment: 16, stack-id: default, isImmutable: true, isAliased: false, callee-saved-register: '', callee-saved-restored: true, diff --git a/llvm/test/CodeGen/X86/tied-depbreak.mir b/llvm/test/CodeGen/X86/tied-depbreak.mir index 4eca28795516f..c133c510bf866 100644 --- a/llvm/test/CodeGen/X86/tied-depbreak.mir +++ b/llvm/test/CodeGen/X86/tied-depbreak.mir @@ -40,8 +40,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/X86/unfoldMemoryOperand.mir b/llvm/test/CodeGen/X86/unfoldMemoryOperand.mir index 135b14d6836a0..d153c935a2cb3 100644 --- a/llvm/test/CodeGen/X86/unfoldMemoryOperand.mir +++ b/llvm/test/CodeGen/X86/unfoldMemoryOperand.mir @@ -72,8 +72,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/CodeGen/X86/win64-eh-empty-block-2.mir b/llvm/test/CodeGen/X86/win64-eh-empty-block-2.mir index df3eb2f8aed72..ec67a9f0bca29 100644 --- a/llvm/test/CodeGen/X86/win64-eh-empty-block-2.mir +++ b/llvm/test/CodeGen/X86/win64-eh-empty-block-2.mir @@ -120,8 +120,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: default, offset: -24, size: 8, alignment: 8, stack-id: default, isImmutable: false, isAliased: false, callee-saved-register: '', diff --git a/llvm/test/CodeGen/X86/zero-call-used-regs-debug-info.mir b/llvm/test/CodeGen/X86/zero-call-used-regs-debug-info.mir index 68505b6d94528..113418a96b464 100644 --- a/llvm/test/CodeGen/X86/zero-call-used-regs-debug-info.mir +++ b/llvm/test/CodeGen/X86/zero-call-used-regs-debug-info.mir @@ -117,8 +117,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/DebugInfo/ARM/machine-cp-updates-dbg-reg.mir b/llvm/test/DebugInfo/ARM/machine-cp-updates-dbg-reg.mir index e14472af7a4ea..0103bd573c4f5 100644 --- a/llvm/test/DebugInfo/ARM/machine-cp-updates-dbg-reg.mir +++ b/llvm/test/DebugInfo/ARM/machine-cp-updates-dbg-reg.mir @@ -140,8 +140,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/DebugInfo/ARM/move-dbg-values-imm-test.mir b/llvm/test/DebugInfo/ARM/move-dbg-values-imm-test.mir index a6bc006c1fe42..0f5a6b9bc4f82 100644 --- a/llvm/test/DebugInfo/ARM/move-dbg-values-imm-test.mir +++ b/llvm/test/DebugInfo/ARM/move-dbg-values-imm-test.mir @@ -94,8 +94,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 4 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: c, type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/DebugInfo/MIR/AArch64/implicit-def-dead-scope.mir b/llvm/test/DebugInfo/MIR/AArch64/implicit-def-dead-scope.mir index 1479b3728ad0e..0064d2d2fd756 100644 --- a/llvm/test/DebugInfo/MIR/AArch64/implicit-def-dead-scope.mir +++ b/llvm/test/DebugInfo/MIR/AArch64/implicit-def-dead-scope.mir @@ -169,8 +169,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: bz, type: default, offset: -32, size: 16, alignment: 8, diff --git a/llvm/test/DebugInfo/MIR/ARM/live-debug-values-reg-copy.mir b/llvm/test/DebugInfo/MIR/ARM/live-debug-values-reg-copy.mir index c7e19abaa6300..f712f563eb812 100644 --- a/llvm/test/DebugInfo/MIR/ARM/live-debug-values-reg-copy.mir +++ b/llvm/test/DebugInfo/MIR/ARM/live-debug-values-reg-copy.mir @@ -92,8 +92,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: '', type: spill-slot, offset: -4, size: 4, alignment: 4, diff --git a/llvm/test/DebugInfo/MIR/InstrRef/livedebugvalues-transfer-variadic-instr-ref.mir b/llvm/test/DebugInfo/MIR/InstrRef/livedebugvalues-transfer-variadic-instr-ref.mir index 7ff40aa28b954..0b5000dd727b9 100644 --- a/llvm/test/DebugInfo/MIR/InstrRef/livedebugvalues-transfer-variadic-instr-ref.mir +++ b/llvm/test/DebugInfo/MIR/InstrRef/livedebugvalues-transfer-variadic-instr-ref.mir @@ -169,8 +169,8 @@ frameInfo: stackProtector: '' functionContext: '' cvBytesOfCalleeSavedRegisters: 48 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: spill-slot, offset: -56, size: 8, alignment: 8, stack-id: default, callee-saved-register: '$rbx', callee-saved-restored: true, debug-info-variable: '', diff --git a/llvm/test/DebugInfo/MIR/Mips/last-inst-bundled.mir b/llvm/test/DebugInfo/MIR/Mips/last-inst-bundled.mir index 97ff7c4589b44..d888fd2260de2 100644 --- a/llvm/test/DebugInfo/MIR/Mips/last-inst-bundled.mir +++ b/llvm/test/DebugInfo/MIR/Mips/last-inst-bundled.mir @@ -134,8 +134,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: condition, type: default, offset: -12, size: 4, alignment: 4, diff --git a/llvm/test/DebugInfo/MIR/Mips/live-debug-values-reg-copy.mir b/llvm/test/DebugInfo/MIR/Mips/live-debug-values-reg-copy.mir index 1e848f74512de..e62fcb1dfe8dc 100644 --- a/llvm/test/DebugInfo/MIR/Mips/live-debug-values-reg-copy.mir +++ b/llvm/test/DebugInfo/MIR/Mips/live-debug-values-reg-copy.mir @@ -118,8 +118,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: '', type: spill-slot, offset: -8, size: 8, alignment: 8, diff --git a/llvm/test/DebugInfo/MIR/X86/dbg-call-site-spilled-arg.mir b/llvm/test/DebugInfo/MIR/X86/dbg-call-site-spilled-arg.mir index 8ede60c33359d..c3467b84f8da1 100644 --- a/llvm/test/DebugInfo/MIR/X86/dbg-call-site-spilled-arg.mir +++ b/llvm/test/DebugInfo/MIR/X86/dbg-call-site-spilled-arg.mir @@ -106,8 +106,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: spill-slot, offset: -56, size: 8, alignment: 8, stack-id: default, callee-saved-register: '$rbx', callee-saved-restored: true, debug-info-variable: '', diff --git a/llvm/test/DebugInfo/MIR/X86/debug-loc-0.mir b/llvm/test/DebugInfo/MIR/X86/debug-loc-0.mir index 0b007456be1e6..f249ec118d3db 100644 --- a/llvm/test/DebugInfo/MIR/X86/debug-loc-0.mir +++ b/llvm/test/DebugInfo/MIR/X86/debug-loc-0.mir @@ -84,8 +84,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: s1.addr, type: default, offset: 0, size: 8, alignment: 8, diff --git a/llvm/test/DebugInfo/MIR/X86/instr-ref-join-def-vphi.mir b/llvm/test/DebugInfo/MIR/X86/instr-ref-join-def-vphi.mir index a23d80ea64b39..7c1519f671c73 100644 --- a/llvm/test/DebugInfo/MIR/X86/instr-ref-join-def-vphi.mir +++ b/llvm/test/DebugInfo/MIR/X86/instr-ref-join-def-vphi.mir @@ -152,8 +152,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: spill-slot, offset: -24, size: 8, alignment: 8, stack-id: default, callee-saved-register: '$rdi', callee-saved-restored: true, debug-info-variable: '', diff --git a/llvm/test/DebugInfo/MIR/X86/kill-after-spill.mir b/llvm/test/DebugInfo/MIR/X86/kill-after-spill.mir index a28018a0912a0..209caaa0d44cf 100644 --- a/llvm/test/DebugInfo/MIR/X86/kill-after-spill.mir +++ b/llvm/test/DebugInfo/MIR/X86/kill-after-spill.mir @@ -227,8 +227,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: spill-slot, offset: -56, size: 8, alignment: 8, stack-id: default, callee-saved-register: '$rbx', callee-saved-restored: true } diff --git a/llvm/test/DebugInfo/MIR/X86/live-debug-values-reg-copy.mir b/llvm/test/DebugInfo/MIR/X86/live-debug-values-reg-copy.mir index 6f5c36933cffe..ff5e5ed3dcebd 100644 --- a/llvm/test/DebugInfo/MIR/X86/live-debug-values-reg-copy.mir +++ b/llvm/test/DebugInfo/MIR/X86/live-debug-values-reg-copy.mir @@ -131,8 +131,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: spill-slot, offset: -48, size: 8, alignment: 16, stack-id: default, callee-saved-register: '$rbx', callee-saved-restored: true } diff --git a/llvm/test/DebugInfo/MIR/X86/live-debug-values-restore.mir b/llvm/test/DebugInfo/MIR/X86/live-debug-values-restore.mir index 3b5bf5d38075c..0b92a290036ad 100644 --- a/llvm/test/DebugInfo/MIR/X86/live-debug-values-restore.mir +++ b/llvm/test/DebugInfo/MIR/X86/live-debug-values-restore.mir @@ -287,8 +287,8 @@ frameInfo: hasVAStart: false hasMustTailInVarArgFunc: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: spill-slot, offset: -56, size: 8, alignment: 8, stack-id: default, callee-saved-register: '$rbx', callee-saved-restored: true, debug-info-variable: '', diff --git a/llvm/test/DebugInfo/MIR/X86/live-debug-vars-unused-arg-debugonly.mir b/llvm/test/DebugInfo/MIR/X86/live-debug-vars-unused-arg-debugonly.mir index 4d48774a78dd7..ac327c6e2c1de 100644 --- a/llvm/test/DebugInfo/MIR/X86/live-debug-vars-unused-arg-debugonly.mir +++ b/llvm/test/DebugInfo/MIR/X86/live-debug-vars-unused-arg-debugonly.mir @@ -123,8 +123,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/DebugInfo/MIR/X86/live-debug-vars-unused-arg.mir b/llvm/test/DebugInfo/MIR/X86/live-debug-vars-unused-arg.mir index e618f48f527b8..59c99d6588ddb 100644 --- a/llvm/test/DebugInfo/MIR/X86/live-debug-vars-unused-arg.mir +++ b/llvm/test/DebugInfo/MIR/X86/live-debug-vars-unused-arg.mir @@ -121,8 +121,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: constants: diff --git a/llvm/test/DebugInfo/X86/instr-ref-track-clobbers.mir b/llvm/test/DebugInfo/X86/instr-ref-track-clobbers.mir index 7ac5923464105..cd02966259c06 100644 --- a/llvm/test/DebugInfo/X86/instr-ref-track-clobbers.mir +++ b/llvm/test/DebugInfo/X86/instr-ref-track-clobbers.mir @@ -114,8 +114,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, type: spill-slot, offset: -16, size: 8, alignment: 16, stack-id: default, callee-saved-register: '$r15', callee-saved-restored: true, debug-info-variable: '', diff --git a/llvm/test/DebugInfo/X86/live-debug-vars-dse.mir b/llvm/test/DebugInfo/X86/live-debug-vars-dse.mir index 908889063584c..210b1d9e14f42 100644 --- a/llvm/test/DebugInfo/X86/live-debug-vars-dse.mir +++ b/llvm/test/DebugInfo/X86/live-debug-vars-dse.mir @@ -114,8 +114,8 @@ frameInfo: hasOpaqueSPAdjustment: false hasVAStart: false hasMustTailInVarArgFunc: false - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: stack: - { id: 0, name: x.addr, type: default, offset: 0, size: 4, alignment: 4, diff --git a/llvm/test/MachineVerifier/verify-inlineasmbr.mir b/llvm/test/MachineVerifier/verify-inlineasmbr.mir index fe54379c1bc76..266d81dd5e516 100644 --- a/llvm/test/MachineVerifier/verify-inlineasmbr.mir +++ b/llvm/test/MachineVerifier/verify-inlineasmbr.mir @@ -107,8 +107,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: - { id: 0, name: skip.i.i, type: default, offset: 0, size: 1, alignment: 4, diff --git a/llvm/test/tools/UpdateTestChecks/update_mir_test_checks/Inputs/x86-MIFlags.mir b/llvm/test/tools/UpdateTestChecks/update_mir_test_checks/Inputs/x86-MIFlags.mir index 162d8493037f9..d1627d98545c9 100644 --- a/llvm/test/tools/UpdateTestChecks/update_mir_test_checks/Inputs/x86-MIFlags.mir +++ b/llvm/test/tools/UpdateTestChecks/update_mir_test_checks/Inputs/x86-MIFlags.mir @@ -51,8 +51,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/tools/UpdateTestChecks/update_mir_test_checks/Inputs/x86-MIFlags.mir.expected b/llvm/test/tools/UpdateTestChecks/update_mir_test_checks/Inputs/x86-MIFlags.mir.expected index 39560a1e1ab0a..f818e4265bb2a 100644 --- a/llvm/test/tools/UpdateTestChecks/update_mir_test_checks/Inputs/x86-MIFlags.mir.expected +++ b/llvm/test/tools/UpdateTestChecks/update_mir_test_checks/Inputs/x86-MIFlags.mir.expected @@ -52,8 +52,8 @@ frameInfo: hasMustTailInVarArgFunc: false hasTailCall: false localFrameSize: 0 - savePoint: '' - restorePoint: '' + savePoints: [] + restorePoints: [] fixedStack: [] stack: [] callSites: [] diff --git a/llvm/test/tools/llvm-reduce/mir/preserve-frame-info.mir b/llvm/test/tools/llvm-reduce/mir/preserve-frame-info.mir index d7ad5f88874d7..5a545873a6a3a 100644 --- a/llvm/test/tools/llvm-reduce/mir/preserve-frame-info.mir +++ b/llvm/test/tools/llvm-reduce/mir/preserve-frame-info.mir @@ -20,8 +20,6 @@ # RESULT-NEXT: hasVAStart: true # RESULT-NEXT: hasMustTailInVarArgFunc: true # RESULT-NEXT: hasTailCall: true -# RESULT-NEXT: savePoint: '%bb.1' -# RESULT-NEXT: restorePoint: '%bb.2' # RESULT-NEXT: fixedStack: # RESULT-NEXT: - { id: 0, offset: 56, size: 4, alignment: 8, callee-saved-register: '$sgpr44', @@ -116,8 +114,8 @@ frameInfo: hasMustTailInVarArgFunc: true hasTailCall: true localFrameSize: 0 - savePoint: '%bb.1' - restorePoint: '%bb.2' + savePoints: [] + restorePoints: [] fixedStack: - { id: 0, offset: 0, size: 8, alignment: 4, isImmutable: true, isAliased: false } diff --git a/llvm/tools/llvm-reduce/ReducerWorkItem.cpp b/llvm/tools/llvm-reduce/ReducerWorkItem.cpp index 7cd974f0cf438..434f88ebd8940 100644 --- a/llvm/tools/llvm-reduce/ReducerWorkItem.cpp +++ b/llvm/tools/llvm-reduce/ReducerWorkItem.cpp @@ -93,11 +93,11 @@ static void cloneFrameInfo( DstMFI.setCVBytesOfCalleeSavedRegisters( SrcMFI.getCVBytesOfCalleeSavedRegisters()); - if (MachineBasicBlock *SavePt = SrcMFI.getSavePoint()) - DstMFI.setSavePoint(Src2DstMBB.find(SavePt)->second); - if (MachineBasicBlock *RestorePt = SrcMFI.getRestorePoint()) - DstMFI.setRestorePoint(Src2DstMBB.find(RestorePt)->second); + DstMFI.setSavePoints(MachineFrameInfo::constructSaveRestorePoints( + SrcMFI.getSavePoints(), Src2DstMBB)); + DstMFI.setRestorePoints(MachineFrameInfo::constructSaveRestorePoints( + SrcMFI.getRestorePoints(), Src2DstMBB)); auto CopyObjectProperties = [](MachineFrameInfo &DstMFI, const MachineFrameInfo &SrcMFI, int FI) {