diff options
Diffstat (limited to 'backend/tools/MIRTool/MIRToolStageTest.cmake')
| -rw-r--r-- | backend/tools/MIRTool/MIRToolStageTest.cmake | 19 |
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}" |
