diff options
author | Chris Lattner <sabre@nondot.org> | 2010-03-14 08:12:40 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-03-14 08:12:40 +0000 |
commit | d5e8d9f29a11db395fe5bd464d9396bf2d8212fd (patch) | |
tree | 2617d3840b880359b016a29d29d2ff3dffdec737 /llvm/lib/Target/XCore | |
parent | c26f44fb0778fd24d8e4986a9b946bda0f53547b (diff) | |
download | bcm5719-llvm-d5e8d9f29a11db395fe5bd464d9396bf2d8212fd.tar.gz bcm5719-llvm-d5e8d9f29a11db395fe5bd464d9396bf2d8212fd.zip |
Now that DBG_LABEL is updated, we can finally make MachineMove
contain an MCSymbol instead of a label index.
llvm-svn: 98482
Diffstat (limited to 'llvm/lib/Target/XCore')
-rw-r--r-- | llvm/lib/Target/XCore/XCoreInstrInfo.cpp | 8 | ||||
-rw-r--r-- | llvm/lib/Target/XCore/XCoreMachineFunctionInfo.h | 4 | ||||
-rw-r--r-- | llvm/lib/Target/XCore/XCoreRegisterInfo.cpp | 36 |
3 files changed, 20 insertions, 28 deletions
diff --git a/llvm/lib/Target/XCore/XCoreInstrInfo.cpp b/llvm/lib/Target/XCore/XCoreInstrInfo.cpp index 801116e4e8e..1c3e33fb701 100644 --- a/llvm/lib/Target/XCore/XCoreInstrInfo.cpp +++ b/llvm/lib/Target/XCore/XCoreInstrInfo.cpp @@ -429,11 +429,9 @@ bool XCoreInstrInfo::spillCalleeSavedRegisters(MachineBasicBlock &MBB, storeRegToStackSlot(MBB, MI, it->getReg(), true, it->getFrameIdx(), it->getRegClass()); if (emitFrameMoves) { - unsigned SaveLabelId = MMI->NextLabelID(); - BuildMI(MBB, MI, DL, get(XCore::DBG_LABEL)) - .addSym(MMI->getLabelSym(SaveLabelId)); - XFI->getSpillLabels().push_back( - std::pair<unsigned, CalleeSavedInfo>(SaveLabelId, *it)); + MCSymbol *SaveLabel = MMI->getLabelSym(MMI->NextLabelID()); + BuildMI(MBB, MI, DL, get(XCore::DBG_LABEL)).addSym(SaveLabel); + XFI->getSpillLabels().push_back(std::make_pair(SaveLabel, *it)); } } return true; diff --git a/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.h b/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.h index 124a011f3cb..a575a0f6954 100644 --- a/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.h +++ b/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.h @@ -31,7 +31,7 @@ private: int LRSpillSlot; int FPSpillSlot; int VarArgsFrameIndex; - std::vector<std::pair<unsigned, CalleeSavedInfo> > SpillLabels; + std::vector<std::pair<MCSymbol*, CalleeSavedInfo> > SpillLabels; public: XCoreFunctionInfo() : @@ -60,7 +60,7 @@ public: void setFPSpillSlot(int off) { FPSpillSlot = off; } int getFPSpillSlot() const { return FPSpillSlot; } - std::vector<std::pair<unsigned, CalleeSavedInfo> >&getSpillLabels() { + std::vector<std::pair<MCSymbol*, CalleeSavedInfo> > &getSpillLabels() { return SpillLabels; } }; diff --git a/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp b/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp index 6a00afaa4b0..856ae36ed39 100644 --- a/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp +++ b/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp @@ -456,18 +456,17 @@ void XCoreRegisterInfo::emitPrologue(MachineFunction &MF) const { std::vector<MachineMove> &Moves = MMI->getFrameMoves(); // Show update of SP. - unsigned FrameLabelId = MMI->NextLabelID(); - BuildMI(MBB, MBBI, dl, TII.get(XCore::DBG_LABEL)) - .addSym(MMI->getLabelSym(FrameLabelId)); + MCSymbol *FrameLabel = MMI->getLabelSym(MMI->NextLabelID()); + BuildMI(MBB, MBBI, dl, TII.get(XCore::DBG_LABEL)).addSym(FrameLabel); MachineLocation SPDst(MachineLocation::VirtualFP); MachineLocation SPSrc(MachineLocation::VirtualFP, -FrameSize * 4); - Moves.push_back(MachineMove(FrameLabelId, SPDst, SPSrc)); + Moves.push_back(MachineMove(FrameLabel, SPDst, SPSrc)); if (LRSavedOnEntry) { MachineLocation CSDst(MachineLocation::VirtualFP, 0); MachineLocation CSSrc(XCore::LR); - Moves.push_back(MachineMove(FrameLabelId, CSDst, CSSrc)); + Moves.push_back(MachineMove(FrameLabel, CSDst, CSSrc)); } } if (saveLR) { @@ -476,13 +475,11 @@ void XCoreRegisterInfo::emitPrologue(MachineFunction &MF) const { MBB.addLiveIn(XCore::LR); if (emitFrameMoves) { - unsigned SaveLRLabelId = MMI->NextLabelID(); - BuildMI(MBB, MBBI, dl, TII.get(XCore::DBG_LABEL)) - .addSym(MMI->getLabelSym(SaveLRLabelId)); + MCSymbol *SaveLRLabel = MMI->getLabelSym(MMI->NextLabelID()); + BuildMI(MBB, MBBI, dl, TII.get(XCore::DBG_LABEL)).addSym(SaveLRLabel); MachineLocation CSDst(MachineLocation::VirtualFP, LRSpillOffset); MachineLocation CSSrc(XCore::LR); - MMI->getFrameMoves().push_back(MachineMove(SaveLRLabelId, - CSDst, CSSrc)); + MMI->getFrameMoves().push_back(MachineMove(SaveLRLabel, CSDst, CSSrc)); } } } @@ -494,13 +491,11 @@ void XCoreRegisterInfo::emitPrologue(MachineFunction &MF) const { // R10 is live-in. It is killed at the spill. MBB.addLiveIn(XCore::R10); if (emitFrameMoves) { - unsigned SaveR10LabelId = MMI->NextLabelID(); - BuildMI(MBB, MBBI, dl, TII.get(XCore::DBG_LABEL)) - .addSym(MMI->getLabelSym(SaveR10LabelId)); + MCSymbol *SaveR10Label = MMI->getLabelSym(MMI->NextLabelID()); + BuildMI(MBB, MBBI, dl, TII.get(XCore::DBG_LABEL)).addSym(SaveR10Label); MachineLocation CSDst(MachineLocation::VirtualFP, FPSpillOffset); MachineLocation CSSrc(XCore::R10); - MMI->getFrameMoves().push_back(MachineMove(SaveR10LabelId, - CSDst, CSSrc)); + MMI->getFrameMoves().push_back(MachineMove(SaveR10Label, CSDst, CSSrc)); } // Set the FP from the SP. unsigned FramePtr = XCore::R10; @@ -508,22 +503,21 @@ void XCoreRegisterInfo::emitPrologue(MachineFunction &MF) const { .addImm(0); if (emitFrameMoves) { // Show FP is now valid. - unsigned FrameLabelId = MMI->NextLabelID(); - BuildMI(MBB, MBBI, dl, TII.get(XCore::DBG_LABEL)) - .addSym(MMI->getLabelSym(FrameLabelId)); + MCSymbol *FrameLabel = MMI->getLabelSym(MMI->NextLabelID()); + BuildMI(MBB, MBBI, dl, TII.get(XCore::DBG_LABEL)).addSym(FrameLabel); MachineLocation SPDst(FramePtr); MachineLocation SPSrc(MachineLocation::VirtualFP); - MMI->getFrameMoves().push_back(MachineMove(FrameLabelId, SPDst, SPSrc)); + MMI->getFrameMoves().push_back(MachineMove(FrameLabel, SPDst, SPSrc)); } } if (emitFrameMoves) { // Frame moves for callee saved. std::vector<MachineMove> &Moves = MMI->getFrameMoves(); - std::vector<std::pair<unsigned, CalleeSavedInfo> >&SpillLabels = + std::vector<std::pair<MCSymbol*, CalleeSavedInfo> >&SpillLabels = XFI->getSpillLabels(); for (unsigned I = 0, E = SpillLabels.size(); I != E; ++I) { - unsigned SpillLabel = SpillLabels[I].first; + MCSymbol *SpillLabel = SpillLabels[I].first; CalleeSavedInfo &CSI = SpillLabels[I].second; int Offset = MFI->getObjectOffset(CSI.getFrameIdx()); unsigned Reg = CSI.getReg(); |