[backend]添加了对主函数中新引入的调试信息打印的控制,修改了测试脚本为云平台测试的参数,调整了73_int_io测例的输入文件的格式
This commit is contained in:
@ -125,7 +125,7 @@ int main(int argc, char **argv) {
|
||||
// 无论最终输出是 IR 还是 ASM,只要不是停止在 AST 阶段,都会进入此优化流程。
|
||||
// optLevel = 0 时,执行默认优化。
|
||||
// optLevel >= 1 时,执行默认优化 + 额外的 -O1 优化。
|
||||
cout << "Applying middle-end optimizations (level -O" << optLevel << ")...\n";
|
||||
if (DEBUG) cout << "Applying middle-end optimizations (level -O" << optLevel << ")...\n";
|
||||
|
||||
// 设置 DEBUG 模式(如果指定了 'ird')
|
||||
if (argStopAfter == "ird") {
|
||||
@ -146,20 +146,20 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
AddressCalculationExpansion ace(moduleIR, builder);
|
||||
if (ace.run()) {
|
||||
cout << "AddressCalculationExpansion made changes.\n";
|
||||
if (DEBUG) cout << "AddressCalculationExpansion made changes.\n";
|
||||
// 如果 ACE 改变了IR,并且 DEBUG 模式开启,可以考虑打印IR
|
||||
if (DEBUG) {
|
||||
cout << "=== After AddressCalculationExpansion ===\n";
|
||||
SysYPrinter(moduleIR).printIR();
|
||||
}
|
||||
} else {
|
||||
cout << "AddressCalculationExpansion made no changes.\n";
|
||||
if (DEBUG) cout << "AddressCalculationExpansion made no changes.\n";
|
||||
}
|
||||
|
||||
|
||||
// 根据优化级别,执行额外的优化 pass
|
||||
if (optLevel >= 1) {
|
||||
cout << "Applying additional -O" << optLevel << " optimizations...\n";
|
||||
if (DEBUG) cout << "Applying additional -O" << optLevel << " optimizations...\n";
|
||||
// 放置 -O1 及其以上级别要启用的额外优化 pass
|
||||
// 例如:
|
||||
// MyNewOptimizationPass newOpt(moduleIR, builder);
|
||||
@ -201,7 +201,7 @@ int main(int argc, char **argv) {
|
||||
SysYPrinter(moduleIR).printIR();
|
||||
}
|
||||
} else {
|
||||
cout << "No additional middle-end optimizations applied for -O" << optLevel << ".\n";
|
||||
if (DEBUG) cout << "No additional middle-end optimizations applied for -O" << optLevel << ".\n";
|
||||
}
|
||||
|
||||
// 5. 根据 argStopAfter 决定后续操作
|
||||
|
||||
@ -102,8 +102,8 @@ find "${TESTDATA_DIR}" -name "*.sy" | while read sy_file; do
|
||||
echo " SY 文件: ${sy_file}"
|
||||
|
||||
# 步骤 1: 使用 sysyc 编译 .sy 到 .s
|
||||
echo " 使用 sysyc 编译: ${SYSYC} -s asm \"${sy_file}\" > \"${assembly_file}\""
|
||||
"${SYSYC}" -s asm "${sy_file}" > "${assembly_file}"
|
||||
echo " 使用 sysyc 编译: ${SYSYC} -S \"${sy_file}\" -o \"${assembly_file}\""
|
||||
"${SYSYC}" -S "${sy_file}" -o "${assembly_file}"
|
||||
if [ $? -ne 0 ]; then
|
||||
echo -e "\e[31m错误: SysY 编译 ${sy_file} 失败\e[0m"
|
||||
continue
|
||||
|
||||
18
testdata/functional/73_int_io.in
vendored
18
testdata/functional/73_int_io.in
vendored
@ -1,14 +1,6 @@
|
||||
|
||||
|
||||
5
|
||||
4006571
|
||||
|
||||
9900
|
||||
1504379
|
||||
|
||||
|
||||
758219
|
||||
99336677
|
||||
|
||||
|
||||
|
||||
4006571
|
||||
9900
|
||||
1504379
|
||||
758219
|
||||
99336677
|
||||
Reference in New Issue
Block a user