From 7f75e9403dd961010979dd5a0b97f6cd275b184d Mon Sep 17 00:00:00 2001 From: Benjamin Kramer Date: Sat, 13 Feb 2016 16:39:39 +0000 Subject: [PATCH] [AggressiveAntiDepBreaker] Skip some unnecessary BitVector copies. llvm-svn: 260825 --- llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp b/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp index 4060db7..4483d8d 100644 --- a/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp +++ b/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp @@ -563,13 +563,16 @@ bool AggressiveAntiDepBreaker::FindSuitableFreeRegisters( if (RegRefs.count(Reg) > 0) { DEBUG(dbgs() << "\t\t" << TRI->getName(Reg) << ":"); - BitVector BV = GetRenameRegisters(Reg); - RenameRegisterMap.insert(std::pair(Reg, BV)); - - DEBUG(dbgs() << " ::"); - DEBUG(for (int r = BV.find_first(); r != -1; r = BV.find_next(r)) - dbgs() << " " << TRI->getName(r)); - DEBUG(dbgs() << "\n"); + BitVector &BV = RenameRegisterMap[Reg]; + assert(BV.empty()); + BV = GetRenameRegisters(Reg); + + DEBUG({ + dbgs() << " ::"; + for (int r = BV.find_first(); r != -1; r = BV.find_next(r)) + dbgs() << " " << TRI->getName(r); + dbgs() << "\n"; + }); } } @@ -650,8 +653,7 @@ bool AggressiveAntiDepBreaker::FindSuitableFreeRegisters( DEBUG(dbgs() << " " << TRI->getName(NewReg)); // Check if Reg can be renamed to NewReg. - BitVector BV = RenameRegisterMap[Reg]; - if (!BV.test(NewReg)) { + if (!RenameRegisterMap[Reg].test(NewReg)) { DEBUG(dbgs() << "(no rename)"); goto next_super_reg; } -- 2.7.4