From 008447abd5e8d2c9e6f78b18f197208ba97f2437 Mon Sep 17 00:00:00 2001 From: clc5q <clc5q@git.zephyr-software.com> Date: Fri, 3 Jul 2015 21:22:30 +0000 Subject: [PATCH] Combine two loops for speed. Former-commit-id: d52cde6c937961c0e07cfbdd3fce8c66717c1a98 --- src/base/SMPFunction.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/base/SMPFunction.cpp b/src/base/SMPFunction.cpp index 3d413c7e..b0a7b3d1 100644 --- a/src/base/SMPFunction.cpp +++ b/src/base/SMPFunction.cpp @@ -3950,6 +3950,13 @@ void SMPFunction::AnalyzeFunc(void) { } } // end for each inst CurrBlock->Analyze(); + // Set up the map of instructions to basic blocks. + for (vector<SMPInstr *>::iterator InstIter = CurrBlock->GetFirstInst(); InstIter != CurrBlock->GetLastInst(); ++InstIter) { + InstAddr = (*InstIter)->GetAddr(); + pair<STARS_ea_t, SMPBasicBlock *> MapItem(InstAddr, CurrBlock); + this->InstBlockMap.insert(MapItem); + } + } // end for each block // Set up basic block links and map of instructions to blocks. @@ -5745,16 +5752,6 @@ void SMPFunction::SetLinks(void) { #if SMP_DEBUG_DATAFLOW_VERBOSE SMP_msg("SetLinks called for %s\n", this->GetFuncName()); #endif - // First, set up the map of instructions to basic blocks. - for (BlockIter = this->Blocks.begin(); BlockIter != this->Blocks.end(); ++BlockIter) { - CurrBlock = (*BlockIter); - vector<SMPInstr *>::iterator InstIter; - for (InstIter = CurrBlock->GetFirstInst(); InstIter != CurrBlock->GetLastInst(); ++InstIter) { - InstAddr = (*InstIter)->GetAddr(); - pair<STARS_ea_t, SMPBasicBlock *> MapItem(InstAddr, CurrBlock); - InstBlockMap.insert(MapItem); - } - } #if SMP_DEBUG_DATAFLOW_VERBOSE SMP_msg("SetLinks finished mapping: %s\n", this->GetFuncName()); -- GitLab