diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:03 +0000 |
commit | 64d98f8ee037282c35007b64c2649055c56af1db (patch) | |
tree | 5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /tests/mir-opt/README.md | |
parent | Adding debian version 1.67.1+dfsg1-1. (diff) | |
download | rustc-64d98f8ee037282c35007b64c2649055c56af1db.tar.xz rustc-64d98f8ee037282c35007b64c2649055c56af1db.zip |
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/mir-opt/README.md')
-rw-r--r-- | tests/mir-opt/README.md | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/tests/mir-opt/README.md b/tests/mir-opt/README.md new file mode 100644 index 000000000..0721d9f70 --- /dev/null +++ b/tests/mir-opt/README.md @@ -0,0 +1,51 @@ +This folder contains tests for MIR optimizations. + +The `mir-opt` test format emits MIR to extra files that you can automatically update by specifying +`--bless` on the command line (just like `ui` tests updating `.stderr` files). + +# `--bless`able test format + +By default 32 bit and 64 bit targets use the same dump files, which can be problematic in the +presence of pointers in constants or other bit width dependent things. In that case you can add + +``` +// EMIT_MIR_FOR_EACH_BIT_WIDTH +``` + +to your test, causing separate files to be generated for 32bit and 64bit systems. + +## Unit testing + +If you are only testing the behavior of a particular mir-opt pass on some specific input (as is +usually the case), you should add + +``` +// unit-test: PassName +``` + +to the top of the file. This makes sure that other passes don't run which means you'll get the input +you expected and your test won't break when other code changes. + +## Emit a diff of the mir for a specific optimization + +This is what you want most often when you want to see how an optimization changes the MIR. + +``` +// EMIT_MIR $file_name_of_some_mir_dump.diff +``` + +## Emit mir after a specific optimization + +Use this if you are just interested in the final state after an optimization. + +``` +// EMIT_MIR $file_name_of_some_mir_dump.after.mir +``` + +## Emit mir before a specific optimization + +This exists mainly for completeness and is rarely useful. + +``` +// EMIT_MIR $file_name_of_some_mir_dump.before.mir +``` |