aboutsummaryrefslogtreecommitdiff
path: root/backend/tools/MIRTool/MIRToolStageTest.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'backend/tools/MIRTool/MIRToolStageTest.cmake')
-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}"