From 73e884bb3e971b1e794ba2501df15138f73b8b1a Mon Sep 17 00:00:00 2001 From: Dale Johannesen Date: Wed, 20 Jan 2010 21:36:02 +0000 Subject: [PATCH] make findDebugLoc a class method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94032 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/CodeGen/MachineBasicBlock.h | 7 ++++--- lib/CodeGen/MachineBasicBlock.cpp | 20 +++++++++++--------- lib/Target/X86/X86InstrInfo.cpp | 4 ++-- lib/Target/X86/X86RegisterInfo.cpp | 4 ++-- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/include/llvm/CodeGen/MachineBasicBlock.h b/include/llvm/CodeGen/MachineBasicBlock.h index ad4bc1f79d5..20644c17e1a 100644 --- a/include/llvm/CodeGen/MachineBasicBlock.h +++ b/include/llvm/CodeGen/MachineBasicBlock.h @@ -337,6 +337,10 @@ public: MachineBasicBlock *DestB, bool isCond); + /// findDebugLoc - find the next valid DebugLoc starting at MBBI, skipping + /// any DEBUG_VALUE instructions. Return UnknownLoc if there is none. + DebugLoc findDebugLoc(MachineBasicBlock::iterator &MBBI); + // Debugging methods. void dump() const; void print(raw_ostream &OS) const; @@ -367,9 +371,6 @@ private: // Methods used to maintain doubly linked list of blocks... void removePredecessor(MachineBasicBlock *pred); }; -DebugLoc -findDebugLoc(MachineBasicBlock::iterator &MBBI, MachineBasicBlock &MBB); - raw_ostream& operator<<(raw_ostream &OS, const MachineBasicBlock &MBB); void WriteAsOperand(raw_ostream &, const MachineBasicBlock*, bool t); diff --git a/lib/CodeGen/MachineBasicBlock.cpp b/lib/CodeGen/MachineBasicBlock.cpp index 030438fceb5..9215bd583b5 100644 --- a/lib/CodeGen/MachineBasicBlock.cpp +++ b/lib/CodeGen/MachineBasicBlock.cpp @@ -524,24 +524,26 @@ bool MachineBasicBlock::CorrectExtraCFGEdges(MachineBasicBlock *DestA, return MadeChange; } -void llvm::WriteAsOperand(raw_ostream &OS, const MachineBasicBlock *MBB, - bool t) { - OS << "BB#" << MBB->getNumber(); -} - /// findDebugLoc - find the next valid DebugLoc starting at MBBI, skipping /// any DEBUG_VALUE instructions. Return UnknownLoc if there is none. DebugLoc -llvm::findDebugLoc(MachineBasicBlock::iterator &MBBI, MachineBasicBlock &MBB) { +MachineBasicBlock::findDebugLoc(MachineBasicBlock::iterator &MBBI) { DebugLoc DL; - if (MBBI != MBB.end()) { + MachineBasicBlock::iterator E = end(); + if (MBBI != E) { // Skip debug declarations, we don't want a DebugLoc from them. MachineBasicBlock::iterator MBBI2 = MBBI; - while (MBBI2 != MBB.end() && + while (MBBI2 != E && MBBI2->getOpcode()==TargetInstrInfo::DEBUG_VALUE) MBBI2++; - if (MBBI2 != MBB.end()) + if (MBBI2 != E) DL = MBBI2->getDebugLoc(); } return DL; } + +void llvm::WriteAsOperand(raw_ostream &OS, const MachineBasicBlock *MBB, + bool t) { + OS << "BB#" << MBB->getNumber(); +} + diff --git a/lib/Target/X86/X86InstrInfo.cpp b/lib/Target/X86/X86InstrInfo.cpp index 9501ace8d37..e6430483569 100644 --- a/lib/Target/X86/X86InstrInfo.cpp +++ b/lib/Target/X86/X86InstrInfo.cpp @@ -2200,7 +2200,7 @@ bool X86InstrInfo::spillCalleeSavedRegisters(MachineBasicBlock &MBB, if (CSI.empty()) return false; - DebugLoc DL = findDebugLoc(MI, MBB); + DebugLoc DL = MBB.findDebugLoc(MI); bool is64Bit = TM.getSubtarget().is64Bit(); bool isWin64 = TM.getSubtarget().isTargetWin64(); @@ -2238,7 +2238,7 @@ bool X86InstrInfo::restoreCalleeSavedRegisters(MachineBasicBlock &MBB, if (CSI.empty()) return false; - DebugLoc DL = findDebugLoc(MI, MBB); + DebugLoc DL = MBB.findDebugLoc(MI); MachineFunction &MF = *MBB.getParent(); unsigned FPReg = RI.getFrameRegister(MF); diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp index 6962b8cef95..f959a2db8b8 100644 --- a/lib/Target/X86/X86RegisterInfo.cpp +++ b/lib/Target/X86/X86RegisterInfo.cpp @@ -682,7 +682,7 @@ void emitSPUpdate(MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, (Is64Bit ? X86::ADD64ri8 : X86::ADD32ri8) : (Is64Bit ? X86::ADD64ri32 : X86::ADD32ri)); uint64_t Chunk = (1LL << 31) - 1; - DebugLoc DL = findDebugLoc(MBBI, MBB); + DebugLoc DL = MBB.findDebugLoc(MBBI); while (Offset) { uint64_t ThisVal = (Offset > Chunk) ? Chunk : Offset; @@ -1031,7 +1031,7 @@ void X86RegisterInfo::emitPrologue(MachineFunction &MF) const { } } - DL = findDebugLoc(MBBI, MBB); + DL = MBB.findDebugLoc(MBBI); // Adjust stack pointer: ESP -= numbytes. if (NumBytes >= 4096 && Subtarget->isTargetCygMing()) { -- 2.34.1