From 51b602893e8d55595cd1f48905af1a5f27e96402 Mon Sep 17 00:00:00 2001 From: Andy Ayers Date: Wed, 19 Jan 2022 11:58:31 -0800 Subject: [PATCH] JIT: fix up switch map for out-of-loop predecessor If we have a loop where some of the non-loop predecessors are switchs, and we add pre-header to the loop, we need to update the switch map for those predecessors. Fixes #63982. --- src/coreclr/jit/optimizer.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/coreclr/jit/optimizer.cpp b/src/coreclr/jit/optimizer.cpp index ec309793e9376b..2daf8e93618f4b 100644 --- a/src/coreclr/jit/optimizer.cpp +++ b/src/coreclr/jit/optimizer.cpp @@ -7574,6 +7574,8 @@ void Compiler::fgCreateLoopPreHeader(unsigned lnum) fgAddRefPred(preHead, predBlock); } } while (++jumpTab, --jumpCnt); + + UpdateSwitchTableTarget(predBlock, entry, preHead); break; default: