From fae8f63a5b852d6fc823d148e3e0ab434d6df249 Mon Sep 17 00:00:00 2001
From: clc5q <clc5q@git.zephyr-software.com>
Date: Fri, 12 Jun 2015 03:22:47 +0000
Subject: [PATCH] Add timings, reduce debug output.

Former-commit-id: 6032fad5ae590c0692688c119cdba6bc92e2549d
---
 src/base/SMPFunction.cpp |  2 ++
 src/base/SMPProgram.cpp  | 19 +++++++++++++------
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/src/base/SMPFunction.cpp b/src/base/SMPFunction.cpp
index 682f55fa..80b20a7d 100644
--- a/src/base/SMPFunction.cpp
+++ b/src/base/SMPFunction.cpp
@@ -702,6 +702,7 @@ map<int, struct STARS_SCCP_Const_Struct>::iterator SMPFunction::InsertGlobalCons
 // Return RTLop if not stack opnd; return normalized RTLop otherwise.
 STARSOpndTypePtr SMPFunction::GetNormalizedOperand(STARS_ea_t InstAddr, const STARSOpndTypePtr &RTLop) {
 	STARSOpndTypePtr NormOp = nullptr;
+#if SMP_DEBUG_DATAFLOW_VERBOSE
 	bool DebugFlag = (0x8048463 == InstAddr);
 	if (DebugFlag) {
 		map<pair<STARSOpndTypePtr, STARS_ea_t>, STARSOpndTypePtr, LessDefinition>::iterator StackMapIter;
@@ -716,6 +717,7 @@ STARSOpndTypePtr SMPFunction::GetNormalizedOperand(STARS_ea_t InstAddr, const ST
 		SMP_msg(" RTLop to search for: ");
 		PrintOperand(RTLop);
 	}
+#endif
 	if (MDIsStackAccessOpnd(RTLop, this->UsesFramePointer())) {
 		pair<STARSOpndTypePtr, STARS_ea_t> OldDefn(RTLop, InstAddr);
 		map<pair<STARSOpndTypePtr, STARS_ea_t>, STARSOpndTypePtr, LessDefinition>::iterator FindIter = this->NormalizedStackOpsMap.find(OldDefn);
diff --git a/src/base/SMPProgram.cpp b/src/base/SMPProgram.cpp
index 41ce313b..3f5278c7 100644
--- a/src/base/SMPProgram.cpp
+++ b/src/base/SMPProgram.cpp
@@ -229,7 +229,8 @@ void SMPProgram::Analyze(ProfilerInformation *pi, FILE *AnnotFile, FILE *InfoAnn
 	long TotalUntypedPhiDefs = 0;
 	long TotalSafeFuncs = 0;
 	size_t TotalInstructions = 0;
-	time_t StartTime = time(NULL), EndTime;
+	time_t StartTime = time(NULL), EndTime, Time1, Time2, Time3, Time4;
+	double Analysis1, Analysis2, Analysis3, Analysis4;
 
 	this->ProfInfo = pi;
 
@@ -395,6 +396,7 @@ void SMPProgram::Analyze(ProfilerInformation *pi, FILE *AnnotFile, FILE *InfoAnn
 #ifndef SMP_REDUCED_ANALYSIS
 
 	// STEP 2: Compute SSA form.
+	Analysis1 = Analysis2 = Analysis3 = Analysis4 = 0.0;
 	list<SMPFunction *>::iterator FuncListIter;
 	for (FuncListIter = this->PrioritizedFuncList.begin(); FuncListIter != this->PrioritizedFuncList.end(); ++FuncListIter) {
 		CurrFunc = (*FuncListIter);
@@ -412,13 +414,21 @@ void SMPProgram::Analyze(ProfilerInformation *pi, FILE *AnnotFile, FILE *InfoAnn
 			CurrFunc->LiveVariableAnalysis(false);
 #endif
 			if (DebugFlag) SMP_msg("Computing SSA.\n");
+			Time1 = time(NULL);
 			CurrFunc->ComputeSSA();
+			Time2 = time(NULL);
+			Analysis1 += difftime(Time2, Time1);
 			if (DebugFlag) SMP_msg("Finished SSA.\n");
 			// Find constant-valued DEFs using SCCP algorithm
 			CurrFunc->SparseConditionalConstantPropagation();
+			Time3 = time(NULL);
+			Analysis2 += difftime(Time3, Time2);
 
 		}
+		Time3 = time(NULL);
 		CurrFunc->MarkFunctionSafe();
+		Time4 = time(NULL);
+		Analysis3 += difftime(Time4, Time3);
 		if (DebugFlag) SMP_msg("Finished MarkFunctionSafe.\n");
 
 		CurrFunc->FreeUnusedMemory3(); // free memory
@@ -426,7 +436,8 @@ void SMPProgram::Analyze(ProfilerInformation *pi, FILE *AnnotFile, FILE *InfoAnn
 
 	EndTime = time(NULL);
 	TimeDiff = difftime(EndTime, StartTime);
-	SMP_msg("INFO: TIME: Phase 4: SSA+SCCP+FuncSafe: %7.2f\n", TimeDiff);
+	SMP_msg("INFO: TIME: Phase 4: SSA+SCCP+FuncSafe: %7.2f SSA: %7.2f SCCP: %7.2f FuncSafe: %7.2f\n", 
+		TimeDiff, Analysis1, Analysis2, Analysis3);
 	StartTime = time(NULL);
 
 #if 0  // need to debug
@@ -546,10 +557,6 @@ void SMPProgram::Analyze(ProfilerInformation *pi, FILE *AnnotFile, FILE *InfoAnn
 			TotalUntypedPhiDefs += CurrFunc->GetUntypedPhiDefs();
 			if (CurrFunc->IsSafe())
 				++TotalSafeFuncs;
-#if 0 // move up
-			// Find constant-valued DEFs using SCCP algorithm
-			CurrFunc->SparseConditionalConstantPropagation();
-#endif
 			// Infer fine-grained info (signedness, bit widths, etc.)
 			CurrFunc->InferFGInfo();
 
-- 
GitLab