diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-06-03 00:02:40 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-06-03 00:02:40 +0000 |
commit | 9aa3ab30a9ccd1aaf6ffb62d03785c887a6e4c81 (patch) | |
tree | 10d2710ef470a338215361f65c457fd1bc0c18be /llvm/lib | |
parent | 2f41757634d9a58ef6808410ad8e685331233019 (diff) | |
download | bcm5719-llvm-9aa3ab30a9ccd1aaf6ffb62d03785c887a6e4c81.tar.gz bcm5719-llvm-9aa3ab30a9ccd1aaf6ffb62d03785c887a6e4c81.zip |
Avoid a call to getOrCreateSymbol when we already have the symbol.
llvm-svn: 238890
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/X86/X86MCInstLower.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86MCInstLower.cpp b/llvm/lib/Target/X86/X86MCInstLower.cpp index cc0e0770258..ff1436af4ec 100644 --- a/llvm/lib/Target/X86/X86MCInstLower.cpp +++ b/llvm/lib/Target/X86/X86MCInstLower.cpp @@ -128,6 +128,7 @@ GetSymbolFromOperand(const MachineOperand &MO) const { const DataLayout *DL = TM.getDataLayout(); assert((MO.isGlobal() || MO.isSymbol() || MO.isMBB()) && "Isn't a symbol reference"); + MCSymbol *Sym = nullptr; SmallString<128> Name; StringRef Suffix; @@ -160,12 +161,14 @@ GetSymbolFromOperand(const MachineOperand &MO) const { else getMang()->getNameWithPrefix(Name, MO.getSymbolName()); } else if (MO.isMBB()) { - Name += MO.getMBB()->getSymbol()->getName(); + assert(Suffix.empty()); + Sym = MO.getMBB()->getSymbol(); } unsigned OrigLen = Name.size() - PrefixLen; Name += Suffix; - MCSymbol *Sym = Ctx.getOrCreateSymbol(Name); + if (!Sym) + Sym = Ctx.getOrCreateSymbol(Name); StringRef OrigName = StringRef(Name).substr(PrefixLen, OrigLen); |