aboutsummaryrefslogtreecommitdiff
path: root/backend/tools/MIRTool
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-11 17:38:11 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-11 17:38:11 +0800
commit4fe5ee649927d54d6fb74904d7b97ad0f63fd587 (patch)
tree75f85f5e6cae3a871fe42d025dca04eeb7c31cfd /backend/tools/MIRTool
parent6a7b083f322f4ac47e58cbf9d4d5fd4d1f6fecd0 (diff)
downloadrcc-project-4fe5ee649927d54d6fb74904d7b97ad0f63fd587.tar.gz
rcc-project-4fe5ee649927d54d6fb74904d7b97ad0f63fd587.tar.xz
[RISCV] Legalize fixed-baseline RV64 MachineIR
Diffstat (limited to 'backend/tools/MIRTool')
-rw-r--r--backend/tools/MIRTool/MIRToolStageTest.cmake19
1 files changed, 19 insertions, 0 deletions
diff --git a/backend/tools/MIRTool/MIRToolStageTest.cmake b/backend/tools/MIRTool/MIRToolStageTest.cmake
index 4fefe6e..8247363 100644
--- a/backend/tools/MIRTool/MIRToolStageTest.cmake
+++ b/backend/tools/MIRTool/MIRToolStageTest.cmake
@@ -61,6 +61,25 @@ foreach(Stage IN LISTS Stages)
endif()
endforeach()
+set(NoPassOutput "${WORK_DIRECTORY}/none.mir")
+execute_process(
+ COMMAND
+ "${TOOL}" --input "${INPUT}" --run-pass=none --emit final-mir --output "${NoPassOutput}"
+ RESULT_VARIABLE NoPassResult
+ ERROR_VARIABLE NoPassDiagnostics
+)
+if(NOT NoPassResult EQUAL 0)
+ message(FATAL_ERROR "LLVM-compatible none pass failed: ${NoPassDiagnostics}")
+endif()
+execute_process(
+ COMMAND "${CMAKE_COMMAND}" -E compare_files "${NoPassOutput}"
+ "${WORK_DIRECTORY}/prelegalizer-mir.mir"
+ RESULT_VARIABLE NoPassComparisonResult
+)
+if(NOT NoPassComparisonResult EQUAL 0)
+ message(FATAL_ERROR "LLVM-compatible none pass changed canonical MIR")
+endif()
+
set(PassList "${WORK_DIRECTORY}/passes.txt")
execute_process(
COMMAND "${TOOL}" --list-passes --input "${INPUT}" --output "${PassList}"