[llvm] Prevent negative index in VRMap to avoid segfault (PR #121926)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 28 02:15:29 PST 2025
https://github.com/saharr1234 updated https://github.com/llvm/llvm-project/pull/121926
>From 430116d141a48aaa7877f97688755e5797e11318 Mon Sep 17 00:00:00 2001
From: saharr <sahar.rofe at mobileye.com>
Date: Tue, 7 Jan 2025 14:23:32 +0200
Subject: [PATCH] Prevent negative index in VRMap to avoid segfault
When computing ReuseStage - np in generateExistingPhis, there's a possibility
that this expression becomes negative, causing out-of-bounds access in
VRMap.
This patch adds a boundary check to ensure the index remains valid, preventing
a segmentation fault in corner cases.
---
llvm/lib/CodeGen/ModuloSchedule.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/llvm/lib/CodeGen/ModuloSchedule.cpp b/llvm/lib/CodeGen/ModuloSchedule.cpp
index 414c8cd71809db..c11751d177feea 100644
--- a/llvm/lib/CodeGen/ModuloSchedule.cpp
+++ b/llvm/lib/CodeGen/ModuloSchedule.cpp
@@ -527,7 +527,7 @@ void ModuloScheduleExpander::generateExistingPhis(
ReuseStage -= LVNumStages;
// Check if the Phi to reuse has been generated yet. If not, then
// there is nothing to reuse.
- if (VRMap[ReuseStage - np].count(LoopVal)) {
+ if (ReuseStage >= np && VRMap[ReuseStage - np].count(LoopVal)) {
NewReg = VRMap[ReuseStage - np][LoopVal];
rewriteScheduledInstr(NewBB, InstrMap, CurStageNum, np, &*BBI,
More information about the llvm-commits
mailing list