From 9b0aea7bcdf9f01a37076232e6cd74ecd3b8418f Mon Sep 17 00:00:00 2001 From: Sjoerd Meijer Date: Mon, 11 Feb 2019 08:47:59 +0000 Subject: [PATCH] [ARM] LoadStoreOptimizer: just a clean-up. NFC. Differential Revision: https://reviews.llvm.org/D57955 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@353670 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/ARM/ARMLoadStoreOptimizer.cpp | 60 ++++++++++-------------- 1 file changed, 25 insertions(+), 35 deletions(-) diff --git a/lib/Target/ARM/ARMLoadStoreOptimizer.cpp b/lib/Target/ARM/ARMLoadStoreOptimizer.cpp index 73db4abbf69..f64b00c0028 100644 --- a/lib/Target/ARM/ARMLoadStoreOptimizer.cpp +++ b/lib/Target/ARM/ARMLoadStoreOptimizer.cpp @@ -2350,10 +2350,13 @@ ARMPreAllocLoadStoreOpt::RescheduleLoadStoreInstrs(MachineBasicBlock *MBB) { bool RetVal = false; DenseMap MI2LocMap; - DenseMap> Base2LdsMap; - DenseMap> Base2StsMap; - SmallVector LdBases; - SmallVector StBases; + using MapIt = DenseMap>::iterator; + using Base2InstMap = DenseMap>; + using BaseVec = SmallVector; + Base2InstMap Base2LdsMap; + Base2InstMap Base2StsMap; + BaseVec LdBases; + BaseVec StBases; unsigned Loc = 0; MachineBasicBlock::iterator MBBI = MBB->begin(); @@ -2380,41 +2383,28 @@ ARMPreAllocLoadStoreOpt::RescheduleLoadStoreInstrs(MachineBasicBlock *MBB) { bool isLd = isLoadSingle(Opc); unsigned Base = MI.getOperand(1).getReg(); int Offset = getMemoryOpOffset(MI); - bool StopHere = false; - if (isLd) { - DenseMap>::iterator BI = - Base2LdsMap.find(Base); - if (BI != Base2LdsMap.end()) { - for (unsigned i = 0, e = BI->second.size(); i != e; ++i) { - if (Offset == getMemoryOpOffset(*BI->second[i])) { - StopHere = true; - break; - } - } - if (!StopHere) - BI->second.push_back(&MI); - } else { - Base2LdsMap[Base].push_back(&MI); - LdBases.push_back(Base); + auto FindBases = [&] (Base2InstMap &Base2Ops, BaseVec &Bases) { + MapIt BI = Base2Ops.find(Base); + if (BI == Base2Ops.end()) { + Base2Ops[Base].push_back(&MI); + Bases.push_back(Base); + return; } - } else { - DenseMap>::iterator BI = - Base2StsMap.find(Base); - if (BI != Base2StsMap.end()) { - for (unsigned i = 0, e = BI->second.size(); i != e; ++i) { - if (Offset == getMemoryOpOffset(*BI->second[i])) { - StopHere = true; - break; - } + for (unsigned i = 0, e = BI->second.size(); i != e; ++i) { + if (Offset == getMemoryOpOffset(*BI->second[i])) { + StopHere = true; + break; } - if (!StopHere) - BI->second.push_back(&MI); - } else { - Base2StsMap[Base].push_back(&MI); - StBases.push_back(Base); } - } + if (!StopHere) + BI->second.push_back(&MI); + }; + + if (isLd) + FindBases(Base2LdsMap, LdBases); + else + FindBases(Base2StsMap, StBases); if (StopHere) { // Found a duplicate (a base+offset combination that's seen earlier). -- 2.50.1