From 434bcea98e264bf8359e5acd1cfece15a657bf5f Mon Sep 17 00:00:00 2001 From: CGH0S7 <776459475@qq.com> Date: Mon, 28 Jul 2025 23:17:26 +0800 Subject: [PATCH] =?UTF-8?q?[PostRA=5FScheduler]=E4=BF=AE=E5=A4=8D=E4=BA=86?= =?UTF-8?q?=E8=B6=85=E5=A4=A7=E6=B5=8B=E4=BE=8B=E5=8D=A1=E6=AD=BB=E7=9A=84?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/PostRA_Scheduler.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/PostRA_Scheduler.cpp b/src/PostRA_Scheduler.cpp index 5268a04..efc18dc 100644 --- a/src/PostRA_Scheduler.cpp +++ b/src/PostRA_Scheduler.cpp @@ -1,9 +1,9 @@ #include "PostRA_Scheduler.h" -#include #include #include #include #include +#define MAX_SCHEDULING_BLOCK_SIZE 10000 // 限制调度块大小,避免过大导致性能问题 namespace sysy { @@ -306,6 +306,9 @@ void validateSchedule(const std::vector& instr_list) { void scheduleBlock(MachineBasicBlock* mbb) { auto& instructions = mbb->getInstructions(); if (instructions.size() <= 1) return; + if (instructions.size() > MAX_SCHEDULING_BLOCK_SIZE) { + return; // 跳过超大块,防止卡住 + } std::vector instr_list; for (auto& instr : instructions) {