From b14bdb4fad8dae49f0aae21a675d4ad3cf2edf7d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 3 Mar 2026 23:59:24 +0000 Subject: [PATCH 1/3] Initial plan From c933b8ba57e5e0fe85159f390fe55a3fefc8a722 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 4 Mar 2026 00:09:52 +0000 Subject: [PATCH 2/3] Add budget checks to IsMonotonicallyIncreasing and ComputeDoesOverflow Co-authored-by: EgorBo <523221+EgorBo@users.noreply.github.com> --- src/coreclr/jit/rangecheck.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/coreclr/jit/rangecheck.cpp b/src/coreclr/jit/rangecheck.cpp index 4b372fa3b41017..bba198044c5eac 100644 --- a/src/coreclr/jit/rangecheck.cpp +++ b/src/coreclr/jit/rangecheck.cpp @@ -511,6 +511,12 @@ bool RangeCheck::IsMonotonicallyIncreasing(GenTree* expr, bool rejectNegativeCon { JITDUMP("[RangeCheck::IsMonotonicallyIncreasing] [%06d]\n", Compiler::dspTreeID(expr)); + if (IsOverBudget()) + { + return false; + } + m_nVisitBudget--; + // Add hashtable entry for expr. bool alreadyPresent = GetSearchPath()->Set(expr, nullptr, SearchPath::Overwrite); if (alreadyPresent) @@ -1789,6 +1795,13 @@ bool RangeCheck::ComputeDoesOverflow(BasicBlock* block, GenTree* expr, const Ran ValueNumStore* vnStore = m_compiler->vnStore; JITDUMP("Does overflow [%06d]?\n", Compiler::dspTreeID(expr)); + + if (IsOverBudget()) + { + return false; + } + m_nVisitBudget--; + GetSearchPath()->Set(expr, block, SearchPath::Overwrite); bool overflows = true; From 95f3f5b56500240d3773ddc385c28a5296f9eea7 Mon Sep 17 00:00:00 2001 From: Egor Bogatov Date: Wed, 4 Mar 2026 14:00:31 +0100 Subject: [PATCH 3/3] Update src/coreclr/jit/rangecheck.cpp Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- src/coreclr/jit/rangecheck.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/jit/rangecheck.cpp b/src/coreclr/jit/rangecheck.cpp index bba198044c5eac..9eb3fb8b12a2e9 100644 --- a/src/coreclr/jit/rangecheck.cpp +++ b/src/coreclr/jit/rangecheck.cpp @@ -1798,7 +1798,7 @@ bool RangeCheck::ComputeDoesOverflow(BasicBlock* block, GenTree* expr, const Ran if (IsOverBudget()) { - return false; + return true; } m_nVisitBudget--;