diff --git a/src/backend/RISCv64/RISCv64Backend.cpp b/src/backend/RISCv64/RISCv64Backend.cpp index 57fb690..1b93ef5 100644 --- a/src/backend/RISCv64/RISCv64Backend.cpp +++ b/src/backend/RISCv64/RISCv64Backend.cpp @@ -268,7 +268,6 @@ std::string RISCv64CodeGen::function_gen(Function* func) { // 阶段 3: 物理寄存器分配 (Register Allocation) bool allocation_succeeded = false; - // 尝试迭代图着色 (IRC) if (!irc_failed) { if (DEBUG) std::cerr << "Attempting Register Allocation with Iterated Register Coloring (IRC)...\n"; @@ -308,6 +307,9 @@ std::string RISCv64CodeGen::function_gen(Function* func) { // 尝试简单图着色 (SGC) if (!allocation_succeeded) { + if (optLevel > 0) { + exit(-1); + } // 如果是从IRC失败回退过来的,需要重新创建干净的mfunc和ISel RISCv64ISel isel_for_sgc; if (irc_failed) {