tree: c93976bc0a8984d344161ee247ed508e5243a9c5 [path history] [tgz]
  1. const_prop/
  2. dest-prop/
  3. inline/
  4. issues/
  5. nll/
  6. 76803_regression.encode.SimplifyBranchSame.diff
  7. 76803_regression.rs
  8. address-of.rs
  9. address_of.address_of_reborrow.SimplifyCfg-initial.after.mir
  10. address_of.borrow_and_cast.SimplifyCfg-initial.after.mir
  11. array-index-is-temporary.rs
  12. array_index_is_temporary.main.SimplifyCfg-elaborate-drops.after.32bit.mir
  13. array_index_is_temporary.main.SimplifyCfg-elaborate-drops.after.64bit.mir
  14. basic_assignment.main.SimplifyCfg-initial.after.mir
  15. basic_assignment.rs
  16. bool_compare.opt1.InstCombine.diff
  17. bool_compare.opt2.InstCombine.diff
  18. bool_compare.opt3.InstCombine.diff
  19. bool_compare.opt4.InstCombine.diff
  20. bool_compare.rs
  21. box_expr.main.ElaborateDrops.before.mir
  22. box_expr.rs
  23. byte_slice.main.SimplifyCfg-elaborate-drops.after.mir
  24. byte_slice.rs
  25. combine_array_len.norm2.InstCombine.32bit.diff
  26. combine_array_len.norm2.InstCombine.64bit.diff
  27. combine_array_len.rs
  28. const-promotion-extern-static.rs
  29. const_allocation.main.ConstProp.after.32bit.mir
  30. const_allocation.main.ConstProp.after.64bit.mir
  31. const_allocation.rs
  32. const_allocation2.main.ConstProp.after.32bit.mir
  33. const_allocation2.main.ConstProp.after.64bit.mir
  34. const_allocation2.rs
  35. const_allocation3.main.ConstProp.after.32bit.mir
  36. const_allocation3.main.ConstProp.after.64bit.mir
  37. const_allocation3.rs
  38. const_debuginfo.main.ConstDebugInfo.diff
  39. const_debuginfo.rs
  40. const_goto.issue_77355_opt.ConstGoto.diff
  41. const_goto.rs
  42. const_goto_const_eval_fail.f.ConstGoto.diff
  43. const_goto_const_eval_fail.rs
  44. const_promotion_extern_static.BAR-promoted[0].SimplifyCfg-elaborate-drops.after.mir
  45. const_promotion_extern_static.BAR.PromoteTemps.diff
  46. const_promotion_extern_static.BOP.mir_map.0.mir
  47. const_promotion_extern_static.FOO-promoted[0].SimplifyCfg-elaborate-drops.after.mir
  48. const_promotion_extern_static.FOO.PromoteTemps.diff
  49. const_prop_miscompile.bar.ConstProp.diff
  50. const_prop_miscompile.foo.ConstProp.diff
  51. const_prop_miscompile.rs
  52. coverage_graphviz.bar.InstrumentCoverage.0.dot
  53. coverage_graphviz.main.InstrumentCoverage.0.dot
  54. coverage_graphviz.rs
  55. deaggregator_test.bar.Deaggregator.diff
  56. deaggregator_test.rs
  57. deaggregator_test_enum.bar.Deaggregator.diff
  58. deaggregator_test_enum.rs
  59. deaggregator_test_enum_2.rs
  60. deaggregator_test_enum_2.test1.Deaggregator.diff
  61. deaggregator_test_multiple.rs
  62. deaggregator_test_multiple.test.Deaggregator.diff
  63. deduplicate_blocks.is_line_doc_comment_2.DeduplicateBlocks.diff
  64. deduplicate_blocks.rs
  65. early_otherwise_branch.opt1.EarlyOtherwiseBranch.diff
  66. early_otherwise_branch.opt2.EarlyOtherwiseBranch.diff
  67. early_otherwise_branch.rs
  68. early_otherwise_branch_3_element_tuple.opt1.EarlyOtherwiseBranch.diff
  69. early_otherwise_branch_3_element_tuple.rs
  70. early_otherwise_branch_68867.rs
  71. early_otherwise_branch_68867.try_sum.EarlyOtherwiseBranch.before-SimplifyBranches-final.after.diff
  72. early_otherwise_branch_68867.try_sum.EarlyOtherwiseBranch.diff
  73. early_otherwise_branch_noopt.noopt1.EarlyOtherwiseBranch.diff
  74. early_otherwise_branch_noopt.noopt2.EarlyOtherwiseBranch.diff
  75. early_otherwise_branch_noopt.rs
  76. equal_true.opt.InstCombine.diff
  77. equal_true.rs
  78. exponential-or.rs
  79. exponential_or.match_tuple.SimplifyCfg-initial.after.mir
  80. fn-ptr-shim.rs
  81. fn_ptr_shim.core.ops-function-Fn-call.AddMovesForPackedDrops.before.mir
  82. funky_arms.float_to_exponential_common.ConstProp.diff
  83. funky_arms.rs
  84. generator-drop-cleanup.rs
  85. generator-storage-dead-unwind.rs
  86. generator-tiny.rs
  87. generator_drop_cleanup.main-{closure#0}.generator_drop.0.mir
  88. generator_storage_dead_unwind.main-{closure#0}.StateTransform.before.mir
  89. generator_tiny.main-{closure#0}.generator_resume.0.mir
  90. graphviz.main.mir_map.0.dot
  91. graphviz.rs
  92. if-condition-int.rs
  93. if_condition_int.dont_opt_bool.SimplifyComparisonIntegral.diff
  94. if_condition_int.dont_opt_floats.SimplifyComparisonIntegral.diff
  95. if_condition_int.dont_remove_comparison.SimplifyComparisonIntegral.diff
  96. if_condition_int.opt_char.SimplifyComparisonIntegral.diff
  97. if_condition_int.opt_i8.SimplifyComparisonIntegral.diff
  98. if_condition_int.opt_multiple_ifs.SimplifyComparisonIntegral.diff
  99. if_condition_int.opt_negative.SimplifyComparisonIntegral.diff
  100. if_condition_int.opt_u32.SimplifyComparisonIntegral.diff
  101. inst_combine_deref.deep_opt.InstCombine.diff
  102. inst_combine_deref.do_not_miscompile.InstCombine.diff
  103. inst_combine_deref.dont_opt.InstCombine.diff
  104. inst_combine_deref.opt_struct.InstCombine.diff
  105. inst_combine_deref.simple_opt.InstCombine.diff
  106. instrument_coverage.bar.InstrumentCoverage.diff
  107. instrument_coverage.main.InstrumentCoverage.diff
  108. instrument_coverage.rs
  109. issue-38669.rs
  110. issue-41110.rs
  111. issue-41697.rs
  112. issue-41888.rs
  113. issue-49232.rs
  114. issue-62289.rs
  115. issue-72181-1.rs
  116. issue-72181.rs
  117. issue-73223.rs
  118. issue-78192.rs
  119. issue_38669.main.SimplifyCfg-initial.after.mir
  120. issue_41110.main.ElaborateDrops.after.mir
  121. issue_41110.test.ElaborateDrops.after.mir
  122. issue_41697.{impl#0}-{constant#0}.SimplifyCfg-promote-consts.after.32bit.mir
  123. issue_41697.{impl#0}-{constant#0}.SimplifyCfg-promote-consts.after.64bit.mir
  124. issue_41888.main.ElaborateDrops.after.mir
  125. issue_49232.main.mir_map.0.mir
  126. issue_62289.test.ElaborateDrops.before.mir
  127. issue_72181.bar.mir_map.0.32bit.mir
  128. issue_72181.bar.mir_map.0.64bit.mir
  129. issue_72181.foo.mir_map.0.32bit.mir
  130. issue_72181.foo.mir_map.0.64bit.mir
  131. issue_72181.main.mir_map.0.32bit.mir
  132. issue_72181.main.mir_map.0.64bit.mir
  133. issue_72181_1.f.mir_map.0.mir
  134. issue_72181_1.main.mir_map.0.mir
  135. issue_73223.main.PreCodegen.32bit.diff
  136. issue_73223.main.PreCodegen.64bit.diff
  137. issue_73223.main.SimplifyArmIdentity.32bit.diff
  138. issue_73223.main.SimplifyArmIdentity.64bit.diff
  139. issue_76432.rs
  140. issue_76432.test.SimplifyComparisonIntegral.diff
  141. issue_78192.f.InstCombine.diff
  142. loop_test.main.SimplifyCfg-promote-consts.after.mir
  143. loop_test.rs
  144. lower_array_len.array_bound.InstCombine.diff
  145. lower_array_len.array_bound.NormalizeArrayLen.diff
  146. lower_array_len.array_bound.SimplifyLocals.diff
  147. lower_array_len.array_bound_mut.InstCombine.diff
  148. lower_array_len.array_bound_mut.NormalizeArrayLen.diff
  149. lower_array_len.array_bound_mut.SimplifyLocals.diff
  150. lower_array_len.array_len.InstCombine.diff
  151. lower_array_len.array_len.NormalizeArrayLen.diff
  152. lower_array_len.array_len.SimplifyLocals.diff
  153. lower_array_len.array_len_by_value.InstCombine.diff
  154. lower_array_len.array_len_by_value.NormalizeArrayLen.diff
  155. lower_array_len.array_len_by_value.SimplifyLocals.diff
  156. lower_array_len.rs
  157. lower_intrinsics.align_of.LowerIntrinsics.diff
  158. lower_intrinsics.discriminant.LowerIntrinsics.diff
  159. lower_intrinsics.f_u64.PreCodegen.before.mir
  160. lower_intrinsics.f_unit.PreCodegen.before.mir
  161. lower_intrinsics.forget.LowerIntrinsics.diff
  162. lower_intrinsics.non_const.LowerIntrinsics.diff
  163. lower_intrinsics.rs
  164. lower_intrinsics.size_of.LowerIntrinsics.diff
  165. lower_intrinsics.unreachable.LowerIntrinsics.diff
  166. lower_intrinsics.wrapping.LowerIntrinsics.diff
  167. lower_slice_len.bound.LowerSliceLenCalls.diff
  168. lower_slice_len.rs
  169. match-arm-scopes.rs
  170. match_arm_scopes.complicated_match.SimplifyCfg-initial.after-ElaborateDrops.after.diff
  171. match_false_edges.full_tested_match.PromoteTemps.after.mir
  172. match_false_edges.full_tested_match2.PromoteTemps.before.mir
  173. match_false_edges.main.PromoteTemps.before.mir
  174. match_false_edges.rs
  175. match_test.main.SimplifyCfg-initial.after.mir
  176. match_test.rs
  177. matches_reduce_branches.bar.MatchBranchSimplification.32bit.diff
  178. matches_reduce_branches.bar.MatchBranchSimplification.64bit.diff
  179. matches_reduce_branches.foo.MatchBranchSimplification.32bit.diff
  180. matches_reduce_branches.foo.MatchBranchSimplification.64bit.diff
  181. matches_reduce_branches.foo.PreCodegen.before.32bit.mir
  182. matches_reduce_branches.foo.PreCodegen.before.64bit.mir
  183. matches_reduce_branches.match_nested_if.MatchBranchSimplification.32bit.diff
  184. matches_reduce_branches.match_nested_if.MatchBranchSimplification.64bit.diff
  185. matches_reduce_branches.rs
  186. matches_u8.exhaustive_match.MatchBranchSimplification.32bit.diff
  187. matches_u8.exhaustive_match.MatchBranchSimplification.64bit.diff
  188. matches_u8.exhaustive_match_i8.MatchBranchSimplification.32bit.diff
  189. matches_u8.exhaustive_match_i8.MatchBranchSimplification.64bit.diff
  190. matches_u8.rs
  191. multiple_return_terminators.rs
  192. multiple_return_terminators.test.MultipleReturnTerminators.diff
  193. no-drop-for-inactive-variant.rs
  194. no-spurious-drop-after-call.rs
  195. no_drop_for_inactive_variant.unwrap.SimplifyCfg-elaborate-drops.after.mir
  196. no_spurious_drop_after_call.main.ElaborateDrops.before.mir
  197. not_equal_false.opt.InstCombine.diff
  198. not_equal_false.rs
  199. nrvo-simple.rs
  200. nrvo_simple.nrvo.RenameReturnPlace.diff
  201. packed-struct-drop-aligned.rs
  202. packed_struct_drop_aligned.main.SimplifyCfg-elaborate-drops.after.32bit.mir
  203. packed_struct_drop_aligned.main.SimplifyCfg-elaborate-drops.after.64bit.mir
  204. README.md
  205. receiver-ptr-mutability.rs
  206. receiver_ptr_mutability.main.mir_map.0.mir
  207. remove-never-const.rs
  208. remove_fake_borrows.match_guard.CleanupNonCodegenStatements.diff
  209. remove_fake_borrows.rs
  210. remove_never_const.no_codegen.PreCodegen.after.mir
  211. remove_storage_markers.main.RemoveStorageMarkers.diff
  212. remove_storage_markers.rs
  213. remove_unneeded_drops.cannot_opt_generic.RemoveUnneededDrops.diff
  214. remove_unneeded_drops.dont_opt.RemoveUnneededDrops.diff
  215. remove_unneeded_drops.opt.RemoveUnneededDrops.diff
  216. remove_unneeded_drops.opt_generic_copy.RemoveUnneededDrops.diff
  217. remove_unneeded_drops.rs
  218. remove_zsts_dont_touch_unions.get_union.RemoveZsts.after.mir
  219. remove_zsts_dont_touch_unions.rs
  220. retag.array_casts.SimplifyCfg-elaborate-drops.after.mir
  221. retag.core.ptr-drop_in_place.Test.SimplifyCfg-make_shim.after.mir
  222. retag.main-{closure#0}.SimplifyCfg-elaborate-drops.after.mir
  223. retag.main.SimplifyCfg-elaborate-drops.after.mir
  224. retag.rs
  225. retag.{impl#0}-foo.SimplifyCfg-elaborate-drops.after.mir
  226. retag.{impl#0}-foo_shr.SimplifyCfg-elaborate-drops.after.mir
  227. return_an_array.rs
  228. rustc.try_identity.DestinationPropagation.diff
  229. separate_const_switch.identity.ConstProp.diff
  230. separate_const_switch.identity.PreCodegen.after.mir
  231. separate_const_switch.identity.SeparateConstSwitch.diff
  232. separate_const_switch.rs
  233. separate_const_switch.too_complex.ConstProp.diff
  234. separate_const_switch.too_complex.PreCodegen.after.mir
  235. separate_const_switch.too_complex.SeparateConstSwitch.diff
  236. simple-match.rs
  237. simple_match.match_bool.mir_map.0.32bit.mir
  238. simple_match.match_bool.mir_map.0.64bit.mir
  239. simplify-arm-identity.rs
  240. simplify-arm.rs
  241. simplify-locals-fixedpoint.rs
  242. simplify-locals-removes-unused-consts.rs
  243. simplify-locals-removes-unused-discriminant-reads.rs
  244. simplify-locals.rs
  245. simplify_arm.id.SimplifyArmIdentity.diff
  246. simplify_arm.id.SimplifyBranchSame.diff
  247. simplify_arm.id_result.SimplifyArmIdentity.diff
  248. simplify_arm.id_result.SimplifyBranchSame.diff
  249. simplify_arm.id_try.SimplifyArmIdentity.diff
  250. simplify_arm.id_try.SimplifyBranchSame.diff
  251. simplify_arm_identity.main.SimplifyArmIdentity.32bit.diff
  252. simplify_arm_identity.main.SimplifyArmIdentity.64bit.diff
  253. simplify_cfg.main.SimplifyCfg-early-opt.diff
  254. simplify_cfg.main.SimplifyCfg-initial.diff
  255. simplify_cfg.rs
  256. simplify_if.main.SimplifyBranches-after-const-prop.diff
  257. simplify_if.rs
  258. simplify_locals.c.SimplifyLocals.diff
  259. simplify_locals.d1.SimplifyLocals.diff
  260. simplify_locals.d2.SimplifyLocals.diff
  261. simplify_locals.r.SimplifyLocals.diff
  262. simplify_locals.t1.SimplifyLocals.diff
  263. simplify_locals.t2.SimplifyLocals.diff
  264. simplify_locals.t3.SimplifyLocals.diff
  265. simplify_locals.t4.SimplifyLocals.diff
  266. simplify_locals_fixedpoint.foo.SimplifyLocals.diff
  267. simplify_locals_removes_unused_consts.main.SimplifyLocals.diff
  268. simplify_locals_removes_unused_discriminant_reads.map.SimplifyLocals.32bit.diff
  269. simplify_locals_removes_unused_discriminant_reads.map.SimplifyLocals.64bit.diff
  270. simplify_match.main.ConstProp.diff
  271. simplify_match.rs
  272. simplify_try.rs
  273. simplify_try.try_identity.DestinationPropagation.diff
  274. simplify_try.try_identity.SimplifyArmIdentity.diff
  275. simplify_try.try_identity.SimplifyBranchSame.after.mir
  276. simplify_try.try_identity.SimplifyLocals.after.mir
  277. simplify_try_if_let.rs
  278. simplify_try_if_let.{impl#0}-append.SimplifyArmIdentity.diff
  279. slice-drop-shim.rs
  280. slice_drop_shim.core.ptr-drop_in_place.[String].AddMovesForPackedDrops.before.32bit.mir
  281. slice_drop_shim.core.ptr-drop_in_place.[String].AddMovesForPackedDrops.before.64bit.mir
  282. spanview-block.rs
  283. spanview-statement.rs
  284. spanview-terminator.rs
  285. spanview_block.main.mir_map.0.html
  286. spanview_statement.main.mir_map.0.html
  287. spanview_terminator.main.mir_map.0.html
  288. storage_live_dead_in_statics.rs
  289. storage_live_dead_in_statics.XXX.mir_map.0.mir
  290. storage_ranges.main.nll.0.mir
  291. storage_ranges.rs
  292. tls-access.rs
  293. tls_access.main.SimplifyCfg-final.after.mir
  294. uniform_array_move_out.move_out_by_subslice.mir_map.0.mir
  295. uniform_array_move_out.move_out_from_end.mir_map.0.mir
  296. uniform_array_move_out.rs
  297. uninhabited-enum.rs
  298. uninhabited_enum.process_never.SimplifyLocals.after.mir
  299. uninhabited_enum.process_void.SimplifyLocals.after.mir
  300. uninhabited_enum_branching.main.SimplifyCfg-after-uninhabited-enum-branching.after.mir
  301. uninhabited_enum_branching.main.UninhabitedEnumBranching.diff
  302. uninhabited_enum_branching.rs
  303. uninhabited_enum_branching2.main.SimplifyCfg-after-uninhabited-enum-branching.after.mir
  304. uninhabited_enum_branching2.main.UninhabitedEnumBranching.diff
  305. uninhabited_enum_branching2.rs
  306. unreachable.main.UnreachablePropagation.diff
  307. unreachable.rs
  308. unreachable_asm.main.UnreachablePropagation.diff
  309. unreachable_asm.rs
  310. unreachable_asm_2.main.UnreachablePropagation.diff
  311. unreachable_asm_2.rs
  312. unreachable_diverging.main.UnreachablePropagation.diff
  313. unreachable_diverging.rs
  314. unusual-item-types.rs
  315. unusual_item_types.core.ptr-drop_in_place.Vec_i32_.AddMovesForPackedDrops.before.32bit.mir
  316. unusual_item_types.core.ptr-drop_in_place.Vec_i32_.AddMovesForPackedDrops.before.64bit.mir
  317. unusual_item_types.E-V-{constant#0}.mir_map.0.32bit.mir
  318. unusual_item_types.E-V-{constant#0}.mir_map.0.64bit.mir
  319. unusual_item_types.Test-X-{constructor#0}.mir_map.0.32bit.mir
  320. unusual_item_types.Test-X-{constructor#0}.mir_map.0.64bit.mir
  321. unusual_item_types.{impl#0}-ASSOCIATED_CONSTANT.mir_map.0.32bit.mir
  322. unusual_item_types.{impl#0}-ASSOCIATED_CONSTANT.mir_map.0.64bit.mir
  323. while-storage.rs
  324. while_let_loops.change_loop_body.ConstProp.32bit.diff
  325. while_let_loops.change_loop_body.ConstProp.64bit.diff
  326. while_let_loops.change_loop_body.PreCodegen.after.32bit.mir
  327. while_let_loops.change_loop_body.PreCodegen.after.64bit.mir
  328. while_let_loops.rs
  329. while_storage.while_loop.PreCodegen.after.mir
src/test/mir-opt/README.md

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).

--blessable 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.

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