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