From 91f755959bd1bb36ff5837cc08299055d53c129a Mon Sep 17 00:00:00 2001 From: rain2133 <1370973498@qq.com> Date: Sun, 3 Aug 2025 17:25:05 +0800 Subject: [PATCH] =?UTF-8?q?[midend]=E4=BF=AE=E6=94=B9=E4=B8=AD=E7=AB=AF?= =?UTF-8?q?=E6=B5=81=E6=B0=B4=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/midend/Pass/Pass.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/midend/Pass/Pass.cpp b/src/midend/Pass/Pass.cpp index c2c8371..73a4573 100644 --- a/src/midend/Pass/Pass.cpp +++ b/src/midend/Pass/Pass.cpp @@ -79,6 +79,10 @@ void PassManager::runOptimizationPipeline(Module* moduleIR, IRBuilder* builderIR this->addPass(&SysYAddReturnPass::ID); this->run(); + this->clearPasses(); + this->addPass(&BuildCFG::ID); + this->run(); + if(DEBUG) { std::cout << "=== IR After CFGOpt Optimizations ===\n"; printPasses(); @@ -119,7 +123,9 @@ void PassManager::runOptimizationPipeline(Module* moduleIR, IRBuilder* builderIR std::cout << "=== IR After Reg2Mem Optimizations ===\n"; printPasses(); } - + this->clearPasses(); + this->addPass(&BuildCFG::ID); + this->run(); if (DEBUG) std::cout << "--- Custom optimization sequence finished ---\n"; } @@ -134,6 +140,7 @@ void PassManager::runOptimizationPipeline(Module* moduleIR, IRBuilder* builderIR SysYPrinter printer(moduleIR); printer.printIR(); } + } void PassManager::clearPasses() {