diff --git a/src/coreclr/jit/compiler.h b/src/coreclr/jit/compiler.h index c03192ec9eac9f..01fbc8c9df2919 100644 --- a/src/coreclr/jit/compiler.h +++ b/src/coreclr/jit/compiler.h @@ -9394,11 +9394,19 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX return IsInstrumented() && jitFlags->IsSet(JitFlags::JIT_FLAG_BBOPT); } - bool CanBeInstrumentedOrIsOptimized() const + bool DoEarlyBlockMerging() const { - return IsInstrumented() || (jitFlags->IsSet(JitFlags::JIT_FLAG_TIER0) && - jitFlags->IsSet(JitFlags::JIT_FLAG_BBINSTR_IF_LOOPS)) || - jitFlags->IsSet(JitFlags::JIT_FLAG_BBOPT); + if (jitFlags->IsSet(JitFlags::JIT_FLAG_DEBUG_EnC) || jitFlags->IsSet(JitFlags::JIT_FLAG_DEBUG_CODE)) + { + return false; + } + + if (jitFlags->IsSet(JitFlags::JIT_FLAG_MIN_OPT) && !jitFlags->IsSet(JitFlags::JIT_FLAG_TIER0)) + { + return false; + } + + return true; } // true if we should use the PINVOKE_{BEGIN,END} helpers instead of generating diff --git a/src/coreclr/jit/fgbasic.cpp b/src/coreclr/jit/fgbasic.cpp index 0e009919acbd4f..61f2c846edfaca 100644 --- a/src/coreclr/jit/fgbasic.cpp +++ b/src/coreclr/jit/fgbasic.cpp @@ -1840,7 +1840,7 @@ void Compiler::fgFindJumpTargets(const BYTE* codeAddr, IL_OFFSET codeSize, Fixed if ((jmpDist == 0) && (opcode == CEE_LEAVE || opcode == CEE_LEAVE_S || opcode == CEE_BR || opcode == CEE_BR_S) && - opts.CanBeInstrumentedOrIsOptimized()) + opts.DoEarlyBlockMerging()) { break; /* NOP */ } @@ -2989,7 +2989,7 @@ unsigned Compiler::fgMakeBasicBlocks(const BYTE* codeAddr, IL_OFFSET codeSize, F jmpDist = (sz == 1) ? getI1LittleEndian(codeAddr) : getI4LittleEndian(codeAddr); - if ((jmpDist == 0) && (opcode == CEE_BR || opcode == CEE_BR_S) && opts.CanBeInstrumentedOrIsOptimized()) + if ((jmpDist == 0) && (opcode == CEE_BR || opcode == CEE_BR_S) && opts.DoEarlyBlockMerging()) { continue; /* NOP */ } diff --git a/src/coreclr/jit/importer.cpp b/src/coreclr/jit/importer.cpp index 2834cf78ab34e7..04e21bd460aaf1 100644 --- a/src/coreclr/jit/importer.cpp +++ b/src/coreclr/jit/importer.cpp @@ -7412,7 +7412,7 @@ void Compiler::impImportBlockCode(BasicBlock* block) case CEE_BR_S: jmpDist = (sz == 1) ? getI1LittleEndian(codeAddr) : getI4LittleEndian(codeAddr); - if ((jmpDist == 0) && opts.CanBeInstrumentedOrIsOptimized()) + if ((jmpDist == 0) && opts.DoEarlyBlockMerging()) { break; /* NOP */ }