diff options
| author | Roman Divacky <rdivacky@FreeBSD.org> | 2010-02-16 09:30:23 +0000 | 
|---|---|---|
| committer | Roman Divacky <rdivacky@FreeBSD.org> | 2010-02-16 09:30:23 +0000 | 
| commit | 6fe5c7aa327e188b7176daa5595bbf075a6b94df (patch) | |
| tree | 4cfca640904d1896e25032757a61f8959c066919 /lib/CodeGen/MachineBasicBlock.cpp | |
| parent | 989df958a10f0beb90b89ccadd8351cbe51d90b1 (diff) | |
Notes
Diffstat (limited to 'lib/CodeGen/MachineBasicBlock.cpp')
| -rw-r--r-- | lib/CodeGen/MachineBasicBlock.cpp | 22 | 
1 files changed, 18 insertions, 4 deletions
| diff --git a/lib/CodeGen/MachineBasicBlock.cpp b/lib/CodeGen/MachineBasicBlock.cpp index 9215bd583b59..655a0bf4450d 100644 --- a/lib/CodeGen/MachineBasicBlock.cpp +++ b/lib/CodeGen/MachineBasicBlock.cpp @@ -14,15 +14,18 @@  #include "llvm/CodeGen/MachineBasicBlock.h"  #include "llvm/BasicBlock.h"  #include "llvm/CodeGen/MachineFunction.h" +#include "llvm/MC/MCAsmInfo.h" +#include "llvm/MC/MCContext.h"  #include "llvm/Target/TargetRegisterInfo.h"  #include "llvm/Target/TargetData.h"  #include "llvm/Target/TargetInstrDesc.h"  #include "llvm/Target/TargetInstrInfo.h"  #include "llvm/Target/TargetMachine.h" +#include "llvm/Assembly/Writer.h" +#include "llvm/ADT/SmallString.h"  #include "llvm/Support/Debug.h"  #include "llvm/Support/LeakDetector.h"  #include "llvm/Support/raw_ostream.h" -#include "llvm/Assembly/Writer.h"  #include <algorithm>  using namespace llvm; @@ -36,6 +39,18 @@ MachineBasicBlock::~MachineBasicBlock() {    LeakDetector::removeGarbageObject(this);  } +/// getSymbol - Return the MCSymbol for this basic block. +/// +MCSymbol *MachineBasicBlock::getSymbol(MCContext &Ctx) const { +  SmallString<60> Name; +  const MachineFunction *MF = getParent(); +  raw_svector_ostream(Name) +    << MF->getTarget().getMCAsmInfo()->getPrivateGlobalPrefix() << "BB" +    << MF->getFunctionNumber() << '_' << getNumber(); +  return Ctx.GetOrCreateSymbol(Name.str()); +} + +  raw_ostream &llvm::operator<<(raw_ostream &OS, const MachineBasicBlock &MBB) {    MBB.print(OS);    return OS; @@ -525,7 +540,7 @@ bool MachineBasicBlock::CorrectExtraCFGEdges(MachineBasicBlock *DestA,  }  /// findDebugLoc - find the next valid DebugLoc starting at MBBI, skipping -/// any DEBUG_VALUE instructions.  Return UnknownLoc if there is none. +/// any DBG_VALUE instructions.  Return UnknownLoc if there is none.  DebugLoc  MachineBasicBlock::findDebugLoc(MachineBasicBlock::iterator &MBBI) {    DebugLoc DL; @@ -533,8 +548,7 @@ MachineBasicBlock::findDebugLoc(MachineBasicBlock::iterator &MBBI) {    if (MBBI != E) {      // Skip debug declarations, we don't want a DebugLoc from them.      MachineBasicBlock::iterator MBBI2 = MBBI; -    while (MBBI2 != E && -           MBBI2->getOpcode()==TargetInstrInfo::DEBUG_VALUE) +    while (MBBI2 != E && MBBI2->isDebugValue())        MBBI2++;      if (MBBI2 != E)        DL = MBBI2->getDebugLoc(); | 
