diff --git a/src/base/SMPFunction.cpp b/src/base/SMPFunction.cpp index 3ebaaa8decbf9994fa70069e4a5c41355a324b04..8213a5c79e31609be1ab0e9442beb77e20c751db 100644 --- a/src/base/SMPFunction.cpp +++ b/src/base/SMPFunction.cpp @@ -1392,6 +1392,10 @@ bool SMPFunction::AnalyzeStackPointerDeltas(void) { CurrBlock->SetProcessed(false); ReprocessingAllocaBlocks = true; DeltaIncrement = IncomingDelta - PrevIncomingDelta; + if (0 != (DeltaIncrement % 32)) { // 32 bytes is our alloca fudge increment + SMP_msg("WARNING: DeltaIncrement of %d not alloca multiple for block at %llx\n", + (unsigned long long) CurrBlock->GetFirstAddr()); + } continue; // Make the loop come around and process this block again, using // the new incoming delta. Because we do this only when it decreases // the stack size as seen by this block, no infinite loop is possible. @@ -1582,6 +1586,9 @@ bool SMPFunction::AnalyzeStackPointerDeltas(void) { WorkList.clear(); break; } + if (TraceFlag) { + SMP_msg("TRACE: CurrentDelta is %d at %llx\n", CurrentDelta, (unsigned long long) InstAddr); + } SMPitype FlowType = CurrInst->GetDataFlowType(); IncomingDelta += CurrentDelta; if ((RETURN == FlowType) && (!CurrInst->IsCondTailCall()) && (!CurrInst->IsTailCall())) {