From c6306353e21a0a807bdf449d5531c81cde4fac1a Mon Sep 17 00:00:00 2001 From: Kunal Pathak Date: Fri, 15 Sep 2023 09:15:58 -0700 Subject: [PATCH 1/2] Check if bbNatLoopNum is not NOT_IN_LOOP --- src/coreclr/jit/compiler.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/coreclr/jit/compiler.cpp b/src/coreclr/jit/compiler.cpp index 666e7da082b348..807793fdaf8c5f 100644 --- a/src/coreclr/jit/compiler.cpp +++ b/src/coreclr/jit/compiler.cpp @@ -5280,8 +5280,8 @@ PhaseStatus Compiler::placeLoopAlignInstructions() memset(visitedLoopNum, false, sizeof(visitedLoopNum)); #ifdef DEBUG - int visitedBlockForLoopNum[BasicBlock::MAX_LOOP_NUM]; - memset(visitedBlockForLoopNum, false, sizeof(visitedBlockForLoopNum)); + unsigned visitedBlockForLoopNum[BasicBlock::MAX_LOOP_NUM]; + memset(visitedBlockForLoopNum, 0, sizeof(visitedBlockForLoopNum)); #endif if ((fgFirstBB != nullptr) && fgFirstBB->isLoopAlign()) @@ -5359,11 +5359,11 @@ PhaseStatus Compiler::placeLoopAlignInstructions() madeChanges = true; unmarkedLoopAlign = true; } - else if (visitedLoopNum[loopTop->bbNatLoopNum]) + else if ((loopTop->bbNatLoopNum != BasicBlock::NOT_IN_LOOP) && (visitedLoopNum[loopTop->bbNatLoopNum])) { #ifdef DEBUG - char buffer[50]; - sprintf_s(buffer, 50, "loop block " FMT_BB " appears before top of loop", + char buffer[100]; + sprintf_s(buffer, 80, "loop block " FMT_BB " appears before top of loop", visitedBlockForLoopNum[loopTop->bbNatLoopNum]); #endif From 593ccfde5598a798626baa9cbcf607d278d5b965 Mon Sep 17 00:00:00 2001 From: Kunal Pathak Date: Fri, 15 Sep 2023 10:07:45 -0700 Subject: [PATCH 2/2] review feedback --- src/coreclr/jit/compiler.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coreclr/jit/compiler.cpp b/src/coreclr/jit/compiler.cpp index 807793fdaf8c5f..56f75aae9dd217 100644 --- a/src/coreclr/jit/compiler.cpp +++ b/src/coreclr/jit/compiler.cpp @@ -5359,11 +5359,11 @@ PhaseStatus Compiler::placeLoopAlignInstructions() madeChanges = true; unmarkedLoopAlign = true; } - else if ((loopTop->bbNatLoopNum != BasicBlock::NOT_IN_LOOP) && (visitedLoopNum[loopTop->bbNatLoopNum])) + else if ((loopTop->bbNatLoopNum != BasicBlock::NOT_IN_LOOP) && visitedLoopNum[loopTop->bbNatLoopNum]) { #ifdef DEBUG char buffer[100]; - sprintf_s(buffer, 80, "loop block " FMT_BB " appears before top of loop", + sprintf_s(buffer, 100, "loop block " FMT_BB " appears before top of loop", visitedBlockForLoopNum[loopTop->bbNatLoopNum]); #endif