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