tree: 28563efa0f3d84b31dd2bdc866eafd1813c827fa [path history] [tgz]
  1. building/
  2. const_prop/
  3. copy-prop/
  4. coverage/
  5. dataflow-const-prop/
  6. dead-store-elimination/
  7. dest-prop/
  8. ergonomic-clones/
  9. inline/
  10. instsimplify/
  11. issues/
  12. nll/
  13. pre-codegen/
  14. sroa/
  15. address_of.address_of_reborrow.SimplifyCfg-initial.after.mir
  16. address_of.borrow_and_cast.SimplifyCfg-initial.after.mir
  17. address_of.rs
  18. array_index_is_temporary.main.SimplifyCfg-pre-optimizations.after.panic-abort.mir
  19. array_index_is_temporary.main.SimplifyCfg-pre-optimizations.after.panic-unwind.mir
  20. array_index_is_temporary.rs
  21. asm_unwind_panic_abort.main.AbortUnwindingCalls.after.mir
  22. asm_unwind_panic_abort.rs
  23. async_closure_fake_read_for_by_move.foo-{closure#0}-{closure#0}.built.after.mir
  24. async_closure_fake_read_for_by_move.foo-{closure#0}-{synthetic#0}.built.after.mir
  25. async_closure_fake_read_for_by_move.rs
  26. async_closure_shims.main-{closure#0}-{closure#0}-{closure#0}.built.after.mir
  27. async_closure_shims.main-{closure#0}-{closure#0}-{synthetic#0}.built.after.mir
  28. async_closure_shims.main-{closure#0}-{closure#0}.coroutine_closure_by_move.0.mir
  29. async_closure_shims.main-{closure#0}-{closure#1}-{closure#0}.built.after.mir
  30. async_closure_shims.main-{closure#0}-{closure#1}-{synthetic#0}.built.after.mir
  31. async_closure_shims.main-{closure#0}-{closure#1}.coroutine_closure_by_move.0.mir
  32. async_closure_shims.main-{closure#0}-{closure#1}.coroutine_closure_by_ref.0.mir
  33. async_closure_shims.rs
  34. async_drop_live_dead.a-{closure#0}.coroutine_drop_async.0.panic-abort.mir
  35. async_drop_live_dead.a-{closure#0}.coroutine_drop_async.0.panic-unwind.mir
  36. async_drop_live_dead.rs
  37. basic_assignment.main.ElaborateDrops.diff
  38. basic_assignment.main.SimplifyCfg-initial.after.mir
  39. basic_assignment.rs
  40. box_expr.main.ElaborateDrops.diff
  41. box_expr.rs
  42. box_partial_move.maybe_move.ElaborateDrops.diff
  43. box_partial_move.rs
  44. build_correct_coerce.main.built.after.mir
  45. build_correct_coerce.rs
  46. byte_slice.main.SimplifyCfg-pre-optimizations.after.mir
  47. byte_slice.rs
  48. c_unwind_terminate.rs
  49. c_unwind_terminate.test.AbortUnwindingCalls.after.mir
  50. const_allocation.main.GVN.after.32bit.mir
  51. const_allocation.main.GVN.after.64bit.mir
  52. const_allocation.rs
  53. const_allocation2.main.GVN.after.32bit.mir
  54. const_allocation2.main.GVN.after.64bit.mir
  55. const_allocation2.rs
  56. const_allocation3.main.GVN.after.32bit.mir
  57. const_allocation3.main.GVN.after.64bit.mir
  58. const_allocation3.rs
  59. const_debuginfo.main.SingleUseConsts.diff
  60. const_debuginfo.rs
  61. const_goto_const_eval_fail.f.JumpThreading.diff
  62. const_goto_const_eval_fail.rs
  63. const_promotion_extern_static.BAR-promoted[0].SimplifyCfg-pre-optimizations.after.mir
  64. const_promotion_extern_static.BAR.PromoteTemps.diff
  65. const_promotion_extern_static.BOP.built.after.mir
  66. const_promotion_extern_static.FOO-promoted[0].SimplifyCfg-pre-optimizations.after.mir
  67. const_promotion_extern_static.FOO.PromoteTemps.diff
  68. const_promotion_extern_static.rs
  69. coroutine_drop_cleanup.main-{closure#0}.coroutine_drop.0.panic-abort.mir
  70. coroutine_drop_cleanup.main-{closure#0}.coroutine_drop.0.panic-unwind.mir
  71. coroutine_drop_cleanup.rs
  72. coroutine_storage_dead_unwind.main-{closure#0}.StateTransform.before.panic-abort.mir
  73. coroutine_storage_dead_unwind.main-{closure#0}.StateTransform.before.panic-unwind.mir
  74. coroutine_storage_dead_unwind.rs
  75. coroutine_tiny.main-{closure#0}.coroutine_resume.0.mir
  76. coroutine_tiny.rs
  77. dataflow.main.maybe_uninit.borrowck.dot
  78. dataflow.rs
  79. derefer_complex_case.main.Derefer.panic-abort.diff
  80. derefer_complex_case.main.Derefer.panic-unwind.diff
  81. derefer_complex_case.rs
  82. derefer_inline_test.main.Derefer.panic-abort.diff
  83. derefer_inline_test.main.Derefer.panic-unwind.diff
  84. derefer_inline_test.rs
  85. derefer_terminator_test.main.Derefer.panic-abort.diff
  86. derefer_terminator_test.main.Derefer.panic-unwind.diff
  87. derefer_terminator_test.rs
  88. derefer_test.main.Derefer.diff
  89. derefer_test.rs
  90. derefer_test_multiple.main.Derefer.diff
  91. derefer_test_multiple.rs
  92. dont_inline_type_id.call.Inline.diff
  93. dont_inline_type_id.rs
  94. dont_reset_cast_kind_without_updating_operand.rs
  95. dont_reset_cast_kind_without_updating_operand.test.GVN.32bit.panic-abort.diff
  96. dont_reset_cast_kind_without_updating_operand.test.GVN.32bit.panic-unwind.diff
  97. dont_reset_cast_kind_without_updating_operand.test.GVN.64bit.panic-abort.diff
  98. dont_reset_cast_kind_without_updating_operand.test.GVN.64bit.panic-unwind.diff
  99. early_otherwise_branch.opt1.EarlyOtherwiseBranch.diff
  100. early_otherwise_branch.opt2.EarlyOtherwiseBranch.diff
  101. early_otherwise_branch.opt3.EarlyOtherwiseBranch.diff
  102. early_otherwise_branch.opt4.EarlyOtherwiseBranch.diff
  103. early_otherwise_branch.opt5.EarlyOtherwiseBranch.diff
  104. early_otherwise_branch.opt5_failed.EarlyOtherwiseBranch.diff
  105. early_otherwise_branch.opt5_failed_type.EarlyOtherwiseBranch.diff
  106. early_otherwise_branch.rs
  107. early_otherwise_branch.target_self.EarlyOtherwiseBranch.diff
  108. early_otherwise_branch_3_element_tuple.opt1.EarlyOtherwiseBranch.diff
  109. early_otherwise_branch_3_element_tuple.opt2.EarlyOtherwiseBranch.diff
  110. early_otherwise_branch_3_element_tuple.rs
  111. early_otherwise_branch_68867.rs
  112. early_otherwise_branch_68867.try_sum.EarlyOtherwiseBranch.diff
  113. early_otherwise_branch_noopt.noopt1.EarlyOtherwiseBranch.diff
  114. early_otherwise_branch_noopt.rs
  115. early_otherwise_branch_soundness.no_deref_ptr.EarlyOtherwiseBranch.diff
  116. early_otherwise_branch_soundness.no_downcast.EarlyOtherwiseBranch.diff
  117. early_otherwise_branch_soundness.rs
  118. early_otherwise_branch_unwind.poll.EarlyOtherwiseBranch.diff
  119. early_otherwise_branch_unwind.rs
  120. early_otherwise_branch_unwind.unwind.EarlyOtherwiseBranch.diff
  121. elaborate_box_deref_in_debuginfo.pointee.ElaborateBoxDerefs.diff
  122. elaborate_box_deref_in_debuginfo.rs
  123. enum_opt.cand.EnumSizeOpt.32bit.diff
  124. enum_opt.cand.EnumSizeOpt.64bit.diff
  125. enum_opt.invalid.EnumSizeOpt.32bit.diff
  126. enum_opt.invalid.EnumSizeOpt.64bit.diff
  127. enum_opt.rs
  128. enum_opt.trunc.EnumSizeOpt.32bit.diff
  129. enum_opt.trunc.EnumSizeOpt.64bit.diff
  130. enum_opt.unin.EnumSizeOpt.32bit.diff
  131. enum_opt.unin.EnumSizeOpt.64bit.diff
  132. fn_ptr_shim.core.ops-function-Fn-call.AddMovesForPackedDrops.before.mir
  133. fn_ptr_shim.rs
  134. funky_arms.float_to_exponential_common.GVN.32bit.panic-abort.diff
  135. funky_arms.float_to_exponential_common.GVN.32bit.panic-unwind.diff
  136. funky_arms.float_to_exponential_common.GVN.64bit.panic-abort.diff
  137. funky_arms.float_to_exponential_common.GVN.64bit.panic-unwind.diff
  138. funky_arms.rs
  139. global_asm.rs
  140. global_asm.{global_asm#0}.SimplifyLocals-final.after.mir
  141. graphviz.main.built.after.dot
  142. graphviz.rs
  143. gvn.aggregate_struct_then_transmute.GVN.panic-abort.diff
  144. gvn.aggregate_struct_then_transmute.GVN.panic-unwind.diff
  145. gvn.arithmetic.GVN.panic-abort.diff
  146. gvn.arithmetic.GVN.panic-unwind.diff
  147. gvn.arithmetic_checked.GVN.panic-abort.diff
  148. gvn.arithmetic_checked.GVN.panic-unwind.diff
  149. gvn.arithmetic_float.GVN.panic-abort.diff
  150. gvn.arithmetic_float.GVN.panic-unwind.diff
  151. gvn.array_len.GVN.panic-abort.diff
  152. gvn.array_len.GVN.panic-unwind.diff
  153. gvn.borrowed.GVN.panic-abort.diff
  154. gvn.borrowed.GVN.panic-unwind.diff
  155. gvn.cast.GVN.panic-abort.diff
  156. gvn.cast.GVN.panic-unwind.diff
  157. gvn.cast_pointer_eq.GVN.panic-abort.diff
  158. gvn.cast_pointer_eq.GVN.panic-unwind.diff
  159. gvn.cast_pointer_then_transmute.GVN.panic-abort.diff
  160. gvn.cast_pointer_then_transmute.GVN.panic-unwind.diff
  161. gvn.casts_before_aggregate_raw_ptr.GVN.panic-abort.diff
  162. gvn.casts_before_aggregate_raw_ptr.GVN.panic-unwind.diff
  163. gvn.comparison.GVN.panic-abort.diff
  164. gvn.comparison.GVN.panic-unwind.diff
  165. gvn.constant_index_overflow.GVN.panic-abort.diff
  166. gvn.constant_index_overflow.GVN.panic-unwind.diff
  167. gvn.dedup_multiple_bounds_checks_lengths.GVN.panic-abort.diff
  168. gvn.dedup_multiple_bounds_checks_lengths.GVN.panic-unwind.diff
  169. gvn.dereferences.GVN.panic-abort.diff
  170. gvn.dereferences.GVN.panic-unwind.diff
  171. gvn.duplicate_slice.GVN.panic-abort.diff
  172. gvn.duplicate_slice.GVN.panic-unwind.diff
  173. gvn.fn_pointers.GVN.panic-abort.diff
  174. gvn.fn_pointers.GVN.panic-unwind.diff
  175. gvn.generic_cast_metadata.GVN.panic-abort.diff
  176. gvn.generic_cast_metadata.GVN.panic-unwind.diff
  177. gvn.indirect_static.GVN.panic-abort.diff
  178. gvn.indirect_static.GVN.panic-unwind.diff
  179. gvn.manual_slice_mut_len.GVN.panic-abort.diff
  180. gvn.manual_slice_mut_len.GVN.panic-unwind.diff
  181. gvn.meta_of_ref_to_slice.GVN.panic-abort.diff
  182. gvn.meta_of_ref_to_slice.GVN.panic-unwind.diff
  183. gvn.multiple_branches.GVN.panic-abort.diff
  184. gvn.multiple_branches.GVN.panic-unwind.diff
  185. gvn.non_freeze.GVN.panic-abort.diff
  186. gvn.non_freeze.GVN.panic-unwind.diff
  187. gvn.references.GVN.panic-abort.diff
  188. gvn.references.GVN.panic-unwind.diff
  189. gvn.remove_casts_must_change_both_sides.GVN.panic-abort.diff
  190. gvn.remove_casts_must_change_both_sides.GVN.panic-unwind.diff
  191. gvn.repeat.GVN.panic-abort.diff
  192. gvn.repeat.GVN.panic-unwind.diff
  193. gvn.repeated_index.GVN.panic-abort.diff
  194. gvn.repeated_index.GVN.panic-unwind.diff
  195. gvn.rs
  196. gvn.slice_const_length.GVN.panic-abort.diff
  197. gvn.slice_const_length.GVN.panic-unwind.diff
  198. gvn.slice_from_raw_parts_as_ptr.GVN.panic-abort.diff
  199. gvn.slice_from_raw_parts_as_ptr.GVN.panic-unwind.diff
  200. gvn.slices.GVN.panic-abort.diff
  201. gvn.slices.GVN.panic-unwind.diff
  202. gvn.subexpression_elimination.GVN.panic-abort.diff
  203. gvn.subexpression_elimination.GVN.panic-unwind.diff
  204. gvn.transmute_then_cast_pointer.GVN.panic-abort.diff
  205. gvn.transmute_then_cast_pointer.GVN.panic-unwind.diff
  206. gvn.transmute_then_transmute_again.GVN.panic-abort.diff
  207. gvn.transmute_then_transmute_again.GVN.panic-unwind.diff
  208. gvn.unary.GVN.panic-abort.diff
  209. gvn.unary.GVN.panic-unwind.diff
  210. gvn.wide_ptr_integer.GVN.panic-abort.diff
  211. gvn.wide_ptr_integer.GVN.panic-unwind.diff
  212. gvn.wide_ptr_provenance.GVN.panic-abort.diff
  213. gvn.wide_ptr_provenance.GVN.panic-unwind.diff
  214. gvn.wide_ptr_same_provenance.GVN.panic-abort.diff
  215. gvn.wide_ptr_same_provenance.GVN.panic-unwind.diff
  216. gvn.wrap_unwrap.GVN.panic-abort.diff
  217. gvn.wrap_unwrap.GVN.panic-unwind.diff
  218. gvn_clone.rs
  219. gvn_clone.{impl#0}-clone.GVN.diff
  220. gvn_copy_aggregate.all_copy.GVN.diff
  221. gvn_copy_aggregate.all_copy_2.GVN.diff
  222. gvn_copy_aggregate.all_copy_different_type.GVN.diff
  223. gvn_copy_aggregate.all_copy_has_changed.GVN.diff
  224. gvn_copy_aggregate.all_copy_move.GVN.diff
  225. gvn_copy_aggregate.all_copy_ret_2.GVN.diff
  226. gvn_copy_aggregate.all_copy_use_changed.GVN.diff
  227. gvn_copy_aggregate.all_copy_use_changed_2.GVN.diff
  228. gvn_copy_aggregate.enum_different_variant.GVN.diff
  229. gvn_copy_aggregate.enum_identical_variant.GVN.diff
  230. gvn_copy_aggregate.nest_copy.GVN.diff
  231. gvn_copy_aggregate.remove_storage_dead.GVN.diff
  232. gvn_copy_aggregate.remove_storage_dead_from_index.GVN.diff
  233. gvn_copy_aggregate.rs
  234. gvn_copy_aggregate.same_type_different_index.GVN.diff
  235. gvn_copy_constant_projection.compare_constant_index.GVN.panic-abort.diff
  236. gvn_copy_constant_projection.compare_constant_index.GVN.panic-unwind.diff
  237. gvn_copy_constant_projection.rs
  238. gvn_copy_moves.fn0.GVN.diff
  239. gvn_copy_moves.rs
  240. gvn_on_unsafe_binder.propagate.GVN.diff
  241. gvn_on_unsafe_binder.rs
  242. gvn_on_unsafe_binder.test.GVN.diff
  243. gvn_overlapping.overlapping.GVN.diff
  244. gvn_overlapping.rs
  245. gvn_ptr_eq_with_constant.main.GVN.diff
  246. gvn_ptr_eq_with_constant.rs
  247. gvn_repeat.repeat_local.GVN.diff
  248. gvn_repeat.repeat_place.GVN.diff
  249. gvn_repeat.rs
  250. gvn_type_id_polymorphic.cursed_is_i32.GVN.diff
  251. gvn_type_id_polymorphic.rs
  252. gvn_uninhabited.f.GVN.panic-abort.diff
  253. gvn_uninhabited.f.GVN.panic-unwind.diff
  254. gvn_uninhabited.rs
  255. if_condition_int.dont_opt_bool.SimplifyComparisonIntegral.diff
  256. if_condition_int.dont_opt_floats.SimplifyComparisonIntegral.diff
  257. if_condition_int.dont_remove_comparison.SimplifyComparisonIntegral.diff
  258. if_condition_int.opt_char.SimplifyComparisonIntegral.diff
  259. if_condition_int.opt_i8.SimplifyComparisonIntegral.diff
  260. if_condition_int.opt_multiple_ifs.SimplifyComparisonIntegral.diff
  261. if_condition_int.opt_negative.SimplifyComparisonIntegral.diff
  262. if_condition_int.opt_u32.SimplifyComparisonIntegral.diff
  263. if_condition_int.rs
  264. impossible_predicates.impossible_predicate.ImpossiblePredicates.diff
  265. impossible_predicates.rs
  266. inline_coroutine_body.rs
  267. inline_coroutine_body.run2-{closure#0}.Inline.panic-abort.diff
  268. inline_coroutine_body.run2-{closure#0}.Inline.panic-unwind.diff
  269. inline_fn_call_for_fn_def.rs
  270. inline_fn_call_for_fn_def.test.Inline.diff
  271. inline_generically_if_sized.call.Inline.diff
  272. inline_generically_if_sized.rs
  273. issue_101973.inner.GVN.panic-abort.diff
  274. issue_101973.inner.GVN.panic-unwind.diff
  275. issue_101973.rs
  276. issue_104451_unwindable_intrinsics.main.AbortUnwindingCalls.after.panic-abort.mir
  277. issue_104451_unwindable_intrinsics.main.AbortUnwindingCalls.after.panic-unwind.mir
  278. issue_104451_unwindable_intrinsics.rs
  279. issue_120925_unsafefncast.rs
  280. issue_38669.main.SimplifyCfg-initial.after.mir
  281. issue_38669.rs
  282. issue_41110.main.ElaborateDrops.panic-abort.diff
  283. issue_41110.main.ElaborateDrops.panic-unwind.diff
  284. issue_41110.rs
  285. issue_41110.test.ElaborateDrops.panic-abort.diff
  286. issue_41110.test.ElaborateDrops.panic-unwind.diff
  287. issue_41697.rs
  288. issue_41697.{impl#0}-{constant#0}.SimplifyCfg-promote-consts.after.mir
  289. issue_41888.main.ElaborateDrops.panic-abort.diff
  290. issue_41888.main.ElaborateDrops.panic-unwind.diff
  291. issue_41888.rs
  292. issue_62289.rs
  293. issue_62289.test.ElaborateDrops.before.panic-abort.mir
  294. issue_62289.test.ElaborateDrops.before.panic-unwind.mir
  295. issue_72181.bar.built.after.mir
  296. issue_72181.foo.built.after.mir
  297. issue_72181.main.built.after.mir
  298. issue_72181.rs
  299. issue_72181_1.f.built.after.mir
  300. issue_72181_1.main.built.after.mir
  301. issue_72181_1.rs
  302. issue_76432.rs
  303. issue_76432.test.SimplifyComparisonIntegral.panic-abort.diff
  304. issue_76432.test.SimplifyComparisonIntegral.panic-unwind.diff
  305. issue_78192.f.InstSimplify-after-simplifycfg.diff
  306. issue_78192.rs
  307. issue_91633.bar.built.after.mir
  308. issue_91633.foo.built.after.mir
  309. issue_91633.fun.built.after.mir
  310. issue_91633.hey.built.after.mir
  311. issue_91633.rs
  312. issue_99325.main.built.after.32bit.mir
  313. issue_99325.main.built.after.64bit.mir
  314. issue_99325.rs
  315. jump_threading.aggregate.JumpThreading.panic-abort.diff
  316. jump_threading.aggregate.JumpThreading.panic-unwind.diff
  317. jump_threading.aggregate_copy.JumpThreading.panic-abort.diff
  318. jump_threading.aggregate_copy.JumpThreading.panic-unwind.diff
  319. jump_threading.assume.JumpThreading.panic-abort.diff
  320. jump_threading.assume.JumpThreading.panic-unwind.diff
  321. jump_threading.bitwise_not.JumpThreading.panic-abort.diff
  322. jump_threading.bitwise_not.JumpThreading.panic-unwind.diff
  323. jump_threading.custom_discr.JumpThreading.panic-abort.diff
  324. jump_threading.custom_discr.JumpThreading.panic-unwind.diff
  325. jump_threading.dfa.JumpThreading.panic-abort.diff
  326. jump_threading.dfa.JumpThreading.panic-unwind.diff
  327. jump_threading.disappearing_bb.JumpThreading.panic-abort.diff
  328. jump_threading.disappearing_bb.JumpThreading.panic-unwind.diff
  329. jump_threading.duplicate_chain.JumpThreading.panic-abort.diff
  330. jump_threading.duplicate_chain.JumpThreading.panic-unwind.diff
  331. jump_threading.floats.JumpThreading.panic-abort.diff
  332. jump_threading.floats.JumpThreading.panic-unwind.diff
  333. jump_threading.identity.JumpThreading.panic-abort.diff
  334. jump_threading.identity.JumpThreading.panic-unwind.diff
  335. jump_threading.logical_not.JumpThreading.panic-abort.diff
  336. jump_threading.logical_not.JumpThreading.panic-unwind.diff
  337. jump_threading.multiple_match.JumpThreading.panic-abort.diff
  338. jump_threading.multiple_match.JumpThreading.panic-unwind.diff
  339. jump_threading.mutable_ref.JumpThreading.panic-abort.diff
  340. jump_threading.mutable_ref.JumpThreading.panic-unwind.diff
  341. jump_threading.mutate_discriminant.JumpThreading.panic-abort.diff
  342. jump_threading.mutate_discriminant.JumpThreading.panic-unwind.diff
  343. jump_threading.renumbered_bb.JumpThreading.panic-abort.diff
  344. jump_threading.renumbered_bb.JumpThreading.panic-unwind.diff
  345. jump_threading.rs
  346. jump_threading.too_complex.JumpThreading.panic-abort.diff
  347. jump_threading.too_complex.JumpThreading.panic-unwind.diff
  348. loop_test.main.SimplifyCfg-promote-consts.after.mir
  349. loop_test.rs
  350. lower_array_len.array_bound.GVN.panic-abort.diff
  351. lower_array_len.array_bound.GVN.panic-unwind.diff
  352. lower_array_len.array_bound_mut.GVN.panic-abort.diff
  353. lower_array_len.array_bound_mut.GVN.panic-unwind.diff
  354. lower_array_len.array_len.GVN.panic-abort.diff
  355. lower_array_len.array_len.GVN.panic-unwind.diff
  356. lower_array_len.array_len_by_value.GVN.panic-abort.diff
  357. lower_array_len.array_len_by_value.GVN.panic-unwind.diff
  358. lower_array_len.array_len_raw.GVN.panic-abort.diff
  359. lower_array_len.array_len_raw.GVN.panic-unwind.diff
  360. lower_array_len.array_len_reborrow.GVN.panic-abort.diff
  361. lower_array_len.array_len_reborrow.GVN.panic-unwind.diff
  362. lower_array_len.rs
  363. lower_intrinsics.align_of.LowerIntrinsics.panic-abort.diff
  364. lower_intrinsics.align_of.LowerIntrinsics.panic-unwind.diff
  365. lower_intrinsics.assume.LowerIntrinsics.panic-abort.diff
  366. lower_intrinsics.assume.LowerIntrinsics.panic-unwind.diff
  367. lower_intrinsics.discriminant.LowerIntrinsics.panic-abort.diff
  368. lower_intrinsics.discriminant.LowerIntrinsics.panic-unwind.diff
  369. lower_intrinsics.f_copy_nonoverlapping.LowerIntrinsics.panic-abort.diff
  370. lower_intrinsics.f_copy_nonoverlapping.LowerIntrinsics.panic-unwind.diff
  371. lower_intrinsics.forget.LowerIntrinsics.panic-abort.diff
  372. lower_intrinsics.forget.LowerIntrinsics.panic-unwind.diff
  373. lower_intrinsics.get_metadata.LowerIntrinsics.panic-abort.diff
  374. lower_intrinsics.get_metadata.LowerIntrinsics.panic-unwind.diff
  375. lower_intrinsics.make_pointers.LowerIntrinsics.panic-abort.diff
  376. lower_intrinsics.make_pointers.LowerIntrinsics.panic-unwind.diff
  377. lower_intrinsics.non_const.LowerIntrinsics.panic-abort.diff
  378. lower_intrinsics.non_const.LowerIntrinsics.panic-unwind.diff
  379. lower_intrinsics.ptr_offset.LowerIntrinsics.panic-abort.diff
  380. lower_intrinsics.ptr_offset.LowerIntrinsics.panic-unwind.diff
  381. lower_intrinsics.read_via_copy_primitive.LowerIntrinsics.panic-abort.diff
  382. lower_intrinsics.read_via_copy_primitive.LowerIntrinsics.panic-unwind.diff
  383. lower_intrinsics.read_via_copy_uninhabited.LowerIntrinsics.panic-abort.diff
  384. lower_intrinsics.read_via_copy_uninhabited.LowerIntrinsics.panic-unwind.diff
  385. lower_intrinsics.rs
  386. lower_intrinsics.size_of.LowerIntrinsics.panic-abort.diff
  387. lower_intrinsics.size_of.LowerIntrinsics.panic-unwind.diff
  388. lower_intrinsics.slice_get.LowerIntrinsics.panic-abort.diff
  389. lower_intrinsics.slice_get.LowerIntrinsics.panic-unwind.diff
  390. lower_intrinsics.three_way_compare_char.LowerIntrinsics.panic-abort.diff
  391. lower_intrinsics.three_way_compare_char.LowerIntrinsics.panic-unwind.diff
  392. lower_intrinsics.three_way_compare_signed.LowerIntrinsics.panic-abort.diff
  393. lower_intrinsics.three_way_compare_signed.LowerIntrinsics.panic-unwind.diff
  394. lower_intrinsics.three_way_compare_unsigned.LowerIntrinsics.panic-abort.diff
  395. lower_intrinsics.three_way_compare_unsigned.LowerIntrinsics.panic-unwind.diff
  396. lower_intrinsics.transmute_inhabited.LowerIntrinsics.panic-abort.diff
  397. lower_intrinsics.transmute_inhabited.LowerIntrinsics.panic-unwind.diff
  398. lower_intrinsics.transmute_ref_dst.LowerIntrinsics.panic-abort.diff
  399. lower_intrinsics.transmute_ref_dst.LowerIntrinsics.panic-unwind.diff
  400. lower_intrinsics.transmute_to_box_uninhabited.LowerIntrinsics.panic-abort.diff
  401. lower_intrinsics.transmute_to_box_uninhabited.LowerIntrinsics.panic-unwind.diff
  402. lower_intrinsics.transmute_to_mut_uninhabited.LowerIntrinsics.panic-abort.diff
  403. lower_intrinsics.transmute_to_mut_uninhabited.LowerIntrinsics.panic-unwind.diff
  404. lower_intrinsics.transmute_to_ref_uninhabited.LowerIntrinsics.panic-abort.diff
  405. lower_intrinsics.transmute_to_ref_uninhabited.LowerIntrinsics.panic-unwind.diff
  406. lower_intrinsics.transmute_uninhabited.LowerIntrinsics.panic-abort.diff
  407. lower_intrinsics.transmute_uninhabited.LowerIntrinsics.panic-unwind.diff
  408. lower_intrinsics.unchecked.LowerIntrinsics.panic-abort.diff
  409. lower_intrinsics.unchecked.LowerIntrinsics.panic-unwind.diff
  410. lower_intrinsics.unreachable.LowerIntrinsics.panic-abort.diff
  411. lower_intrinsics.unreachable.LowerIntrinsics.panic-unwind.diff
  412. lower_intrinsics.with_overflow.LowerIntrinsics.panic-abort.diff
  413. lower_intrinsics.with_overflow.LowerIntrinsics.panic-unwind.diff
  414. lower_intrinsics.wrapping.LowerIntrinsics.panic-abort.diff
  415. lower_intrinsics.wrapping.LowerIntrinsics.panic-unwind.diff
  416. lower_intrinsics.write_via_move_string.LowerIntrinsics.panic-abort.diff
  417. lower_intrinsics.write_via_move_string.LowerIntrinsics.panic-unwind.diff
  418. lower_slice_len.bound.LowerSliceLenCalls.panic-abort.diff
  419. lower_slice_len.bound.LowerSliceLenCalls.panic-unwind.diff
  420. lower_slice_len.rs
  421. match_arm_scopes.complicated_match.panic-abort.SimplifyCfg-initial.after-ElaborateDrops.after.diff
  422. match_arm_scopes.complicated_match.panic-unwind.SimplifyCfg-initial.after-ElaborateDrops.after.diff
  423. match_arm_scopes.rs
  424. matches_reduce_branches.bar.MatchBranchSimplification.diff
  425. matches_reduce_branches.foo.MatchBranchSimplification.diff
  426. matches_reduce_branches.match_i128_u128.MatchBranchSimplification.diff
  427. matches_reduce_branches.match_nested_if.MatchBranchSimplification.diff
  428. matches_reduce_branches.match_non_int_failed.MatchBranchSimplification.diff
  429. matches_reduce_branches.match_sext_i8_i16.MatchBranchSimplification.diff
  430. matches_reduce_branches.match_sext_i8_i16_failed.MatchBranchSimplification.diff
  431. matches_reduce_branches.match_sext_i8_u16.MatchBranchSimplification.diff
  432. matches_reduce_branches.match_sext_i8_u16_failed.MatchBranchSimplification.diff
  433. matches_reduce_branches.match_trunc_i16_i8.MatchBranchSimplification.diff
  434. matches_reduce_branches.match_trunc_i16_i8_failed.MatchBranchSimplification.diff
  435. matches_reduce_branches.match_trunc_i16_u8.MatchBranchSimplification.diff
  436. matches_reduce_branches.match_trunc_i16_u8_failed.MatchBranchSimplification.diff
  437. matches_reduce_branches.match_trunc_u16_i8.MatchBranchSimplification.diff
  438. matches_reduce_branches.match_trunc_u16_i8_failed.MatchBranchSimplification.diff
  439. matches_reduce_branches.match_trunc_u16_u8.MatchBranchSimplification.diff
  440. matches_reduce_branches.match_trunc_u16_u8_failed.MatchBranchSimplification.diff
  441. matches_reduce_branches.match_u8_i8.MatchBranchSimplification.diff
  442. matches_reduce_branches.match_u8_i8_2.MatchBranchSimplification.diff
  443. matches_reduce_branches.match_u8_i8_2_failed.MatchBranchSimplification.diff
  444. matches_reduce_branches.match_u8_i8_failed.MatchBranchSimplification.diff
  445. matches_reduce_branches.match_u8_i8_failed_len_1.MatchBranchSimplification.diff
  446. matches_reduce_branches.match_u8_i8_failed_len_2.MatchBranchSimplification.diff
  447. matches_reduce_branches.match_u8_i8_fallback.MatchBranchSimplification.diff
  448. matches_reduce_branches.match_zext_u8_i16.MatchBranchSimplification.diff
  449. matches_reduce_branches.match_zext_u8_i16_failed.MatchBranchSimplification.diff
  450. matches_reduce_branches.match_zext_u8_u16.MatchBranchSimplification.diff
  451. matches_reduce_branches.match_zext_u8_u16_failed.MatchBranchSimplification.diff
  452. matches_reduce_branches.my_is_some.MatchBranchSimplification.diff
  453. matches_reduce_branches.rs
  454. matches_u8.exhaustive_match.MatchBranchSimplification.diff
  455. matches_u8.exhaustive_match_i8.MatchBranchSimplification.diff
  456. matches_u8.rs
  457. multiple_return_terminators.rs
  458. multiple_return_terminators.test.MultipleReturnTerminators.diff
  459. no_drop_for_inactive_variant.rs
  460. no_drop_for_inactive_variant.unwrap.SimplifyCfg-pre-optimizations.after.panic-abort.mir
  461. no_drop_for_inactive_variant.unwrap.SimplifyCfg-pre-optimizations.after.panic-unwind.mir
  462. no_spurious_drop_after_call.main.ElaborateDrops.before.panic-abort.mir
  463. no_spurious_drop_after_call.main.ElaborateDrops.before.panic-unwind.mir
  464. no_spurious_drop_after_call.rs
  465. nrvo_miscompile_111005.rs
  466. nrvo_miscompile_111005.wrong.RenameReturnPlace.diff
  467. nrvo_simple.nrvo.RenameReturnPlace.panic-abort.diff
  468. nrvo_simple.nrvo.RenameReturnPlace.panic-unwind.diff
  469. nrvo_simple.rs
  470. null_check_references.rs
  471. optimize_none.rs
  472. or_pattern.rs
  473. or_pattern.shortcut_second_or.SimplifyCfg-initial.after.mir
  474. or_pattern.single_switchint.SimplifyCfg-initial.after.mir
  475. packed_struct_drop_aligned.main.SimplifyCfg-pre-optimizations.after.panic-abort.mir
  476. packed_struct_drop_aligned.main.SimplifyCfg-pre-optimizations.after.panic-unwind.mir
  477. packed_struct_drop_aligned.rs
  478. pattern_types.main.PreCodegen.after.mir
  479. pattern_types.rs
  480. read_from_trivial_switch.main.SimplifyCfg-initial.diff
  481. read_from_trivial_switch.rs
  482. README.md
  483. reference_prop.debuginfo.ReferencePropagation.diff
  484. reference_prop.dominate_storage.ReferencePropagation.diff
  485. reference_prop.maybe_dead.ReferencePropagation.diff
  486. reference_prop.multiple_storage.ReferencePropagation.diff
  487. reference_prop.mut_raw_then_mut_shr.ReferencePropagation.diff
  488. reference_prop.read_through_raw.ReferencePropagation.diff
  489. reference_prop.reference_propagation.ReferencePropagation.diff
  490. reference_prop.reference_propagation_const_ptr.ReferencePropagation.diff
  491. reference_prop.reference_propagation_mut.ReferencePropagation.diff
  492. reference_prop.reference_propagation_mut_ptr.ReferencePropagation.diff
  493. reference_prop.rs
  494. reference_prop.unique_with_copies.ReferencePropagation.diff
  495. remove_fake_borrows.match_guard.CleanupPostBorrowck.panic-abort.diff
  496. remove_fake_borrows.match_guard.CleanupPostBorrowck.panic-unwind.diff
  497. remove_fake_borrows.rs
  498. remove_never_const.no_codegen.PreCodegen.after.mir
  499. remove_never_const.rs
  500. remove_storage_markers.main.RemoveStorageMarkers.panic-abort.diff
  501. remove_storage_markers.main.RemoveStorageMarkers.panic-unwind.diff
  502. remove_storage_markers.rs
  503. remove_unneeded_drops.cannot_opt_generic.RemoveUnneededDrops.panic-abort.diff
  504. remove_unneeded_drops.cannot_opt_generic.RemoveUnneededDrops.panic-unwind.diff
  505. remove_unneeded_drops.dont_opt.RemoveUnneededDrops.panic-abort.diff
  506. remove_unneeded_drops.dont_opt.RemoveUnneededDrops.panic-unwind.diff
  507. remove_unneeded_drops.opt.RemoveUnneededDrops.panic-abort.diff
  508. remove_unneeded_drops.opt.RemoveUnneededDrops.panic-unwind.diff
  509. remove_unneeded_drops.opt_generic_copy.RemoveUnneededDrops.panic-abort.diff
  510. remove_unneeded_drops.opt_generic_copy.RemoveUnneededDrops.panic-unwind.diff
  511. remove_unneeded_drops.rs
  512. remove_zsts.get_union.RemoveZsts.diff
  513. remove_zsts.remove_generic_array.RemoveZsts.diff
  514. remove_zsts.rs
  515. retag.array_casts.SimplifyCfg-pre-optimizations.after.panic-abort.mir
  516. retag.array_casts.SimplifyCfg-pre-optimizations.after.panic-unwind.mir
  517. retag.box_to_raw_mut.SimplifyCfg-pre-optimizations.after.panic-abort.mir
  518. retag.box_to_raw_mut.SimplifyCfg-pre-optimizations.after.panic-unwind.mir
  519. retag.core.ptr-drop_in_place.Test.SimplifyCfg-make_shim.after.panic-abort.mir
  520. retag.core.ptr-drop_in_place.Test.SimplifyCfg-make_shim.after.panic-unwind.mir
  521. retag.main-{closure#0}.SimplifyCfg-pre-optimizations.after.panic-abort.mir
  522. retag.main-{closure#0}.SimplifyCfg-pre-optimizations.after.panic-unwind.mir
  523. retag.main.SimplifyCfg-pre-optimizations.after.panic-abort.mir
  524. retag.main.SimplifyCfg-pre-optimizations.after.panic-unwind.mir
  525. retag.rs
  526. retag.{impl#0}-foo.SimplifyCfg-pre-optimizations.after.panic-abort.mir
  527. retag.{impl#0}-foo.SimplifyCfg-pre-optimizations.after.panic-unwind.mir
  528. retag.{impl#0}-foo_shr.SimplifyCfg-pre-optimizations.after.panic-abort.mir
  529. retag.{impl#0}-foo_shr.SimplifyCfg-pre-optimizations.after.panic-unwind.mir
  530. return_an_array.rs
  531. separate_const_switch.identity.JumpThreading.diff
  532. separate_const_switch.rs
  533. separate_const_switch.too_complex.JumpThreading.diff
  534. set_no_discriminant.f.JumpThreading.diff
  535. set_no_discriminant.generic.JumpThreading.diff
  536. set_no_discriminant.rs
  537. simplify_aggregate_to_copy_miscompile.foo.GVN.diff
  538. simplify_aggregate_to_copy_miscompile.rs
  539. simplify_aggregate_to_copy_miscompile.set_discriminant.GVN.diff
  540. simplify_cfg.main.SimplifyCfg-initial.diff
  541. simplify_cfg.main.SimplifyCfg-post-analysis.diff
  542. simplify_cfg.rs
  543. simplify_dead_blocks.assert_nonzero_nonmax.SimplifyCfg-after-unreachable-enum-branching.diff
  544. simplify_dead_blocks.rs
  545. simplify_if.main.SimplifyConstCondition-after-const-prop.panic-abort.diff
  546. simplify_if.main.SimplifyConstCondition-after-const-prop.panic-unwind.diff
  547. simplify_if.rs
  548. simplify_locals.c.SimplifyLocals-before-const-prop.diff
  549. simplify_locals.d1.SimplifyLocals-before-const-prop.diff
  550. simplify_locals.d2.SimplifyLocals-before-const-prop.diff
  551. simplify_locals.expose_provenance.SimplifyLocals-before-const-prop.diff
  552. simplify_locals.r.SimplifyLocals-before-const-prop.diff
  553. simplify_locals.rs
  554. simplify_locals.t1.SimplifyLocals-before-const-prop.diff
  555. simplify_locals.t2.SimplifyLocals-before-const-prop.diff
  556. simplify_locals.t3.SimplifyLocals-before-const-prop.diff
  557. simplify_locals.t4.SimplifyLocals-before-const-prop.diff
  558. simplify_locals_fixedpoint.foo.SimplifyLocals-final.panic-abort.diff
  559. simplify_locals_fixedpoint.foo.SimplifyLocals-final.panic-unwind.diff
  560. simplify_locals_fixedpoint.rs
  561. simplify_locals_removes_unused_consts.main.SimplifyLocals-before-const-prop.panic-abort.diff
  562. simplify_locals_removes_unused_consts.main.SimplifyLocals-before-const-prop.panic-unwind.diff
  563. simplify_locals_removes_unused_consts.rs
  564. simplify_locals_removes_unused_discriminant_reads.map.SimplifyLocals-before-const-prop.diff
  565. simplify_locals_removes_unused_discriminant_reads.rs
  566. simplify_match.main.GVN.panic-abort.diff
  567. simplify_match.main.GVN.panic-unwind.diff
  568. simplify_match.rs
  569. single_use_consts.assign_const_to_return.SingleUseConsts.panic-abort.diff
  570. single_use_consts.assign_const_to_return.SingleUseConsts.panic-unwind.diff
  571. single_use_consts.if_const.SingleUseConsts.panic-abort.diff
  572. single_use_consts.if_const.SingleUseConsts.panic-unwind.diff
  573. single_use_consts.if_const_debug.SingleUseConsts.panic-abort.diff
  574. single_use_consts.if_const_debug.SingleUseConsts.panic-unwind.diff
  575. single_use_consts.keep_parameter.SingleUseConsts.panic-abort.diff
  576. single_use_consts.keep_parameter.SingleUseConsts.panic-unwind.diff
  577. single_use_consts.match_const.SingleUseConsts.panic-abort.diff
  578. single_use_consts.match_const.SingleUseConsts.panic-unwind.diff
  579. single_use_consts.match_const_debug.SingleUseConsts.panic-abort.diff
  580. single_use_consts.match_const_debug.SingleUseConsts.panic-unwind.diff
  581. single_use_consts.never_used_debug.SingleUseConsts.panic-abort.diff
  582. single_use_consts.never_used_debug.SingleUseConsts.panic-unwind.diff
  583. single_use_consts.rs
  584. slice_drop_shim.core.ptr-drop_in_place.[String;42].AddMovesForPackedDrops.before.mir
  585. slice_drop_shim.core.ptr-drop_in_place.[String].AddMovesForPackedDrops.before.mir
  586. slice_drop_shim.rs
  587. ssa_unreachable_116212.rs
  588. storage_ranges.main.nll.0.mir
  589. storage_ranges.rs
  590. strip_debuginfo.rs
  591. switch_to_self.rs
  592. switch_to_self.test.MatchBranchSimplification.diff
  593. tail_call_drops.f.built.after.panic-abort.mir
  594. tail_call_drops.f.built.after.panic-unwind.mir
  595. tail_call_drops.f.ElaborateDrops.panic-abort.diff
  596. tail_call_drops.f.ElaborateDrops.panic-unwind.diff
  597. tail_call_drops.f_with_arg.built.after.panic-abort.mir
  598. tail_call_drops.f_with_arg.built.after.panic-unwind.mir
  599. tail_call_drops.f_with_arg.ElaborateDrops.panic-abort.diff
  600. tail_call_drops.f_with_arg.ElaborateDrops.panic-unwind.diff
  601. tail_call_drops.rs
  602. tail_expr_drop_order_unwind.method_1.ElaborateDrops.after.panic-abort.mir
  603. tail_expr_drop_order_unwind.method_1.ElaborateDrops.after.panic-unwind.mir
  604. tail_expr_drop_order_unwind.rs
  605. tls_access.main.PreCodegen.after.mir
  606. tls_access.rs
  607. uninhabited_enum.process_never.SimplifyLocals-final.after.mir
  608. uninhabited_enum.process_void.SimplifyLocals-final.after.mir
  609. uninhabited_enum.rs
  610. uninhabited_fallthrough_elimination.eliminate_fallthrough.UnreachableEnumBranching.diff
  611. uninhabited_fallthrough_elimination.keep_fallthrough.UnreachableEnumBranching.diff
  612. uninhabited_fallthrough_elimination.rs
  613. uninhabited_not_read.main.SimplifyLocals-final.after.mir
  614. uninhabited_not_read.rs
  615. unreachable.as_match.UnreachablePropagation.panic-abort.diff
  616. unreachable.as_match.UnreachablePropagation.panic-unwind.diff
  617. unreachable.if_let.UnreachablePropagation.panic-abort.diff
  618. unreachable.if_let.UnreachablePropagation.panic-unwind.diff
  619. unreachable.rs
  620. unreachable_diverging.main.UnreachablePropagation.panic-abort.diff
  621. unreachable_diverging.main.UnreachablePropagation.panic-unwind.diff
  622. unreachable_diverging.rs
  623. unreachable_enum_branching.byref.UnreachableEnumBranching.panic-abort.diff
  624. unreachable_enum_branching.byref.UnreachableEnumBranching.panic-unwind.diff
  625. unreachable_enum_branching.custom_discriminant.UnreachableEnumBranching.panic-abort.diff
  626. unreachable_enum_branching.custom_discriminant.UnreachableEnumBranching.panic-unwind.diff
  627. unreachable_enum_branching.otherwise_t1.UnreachableEnumBranching.panic-abort.diff
  628. unreachable_enum_branching.otherwise_t1.UnreachableEnumBranching.panic-unwind.diff
  629. unreachable_enum_branching.otherwise_t2.UnreachableEnumBranching.panic-abort.diff
  630. unreachable_enum_branching.otherwise_t2.UnreachableEnumBranching.panic-unwind.diff
  631. unreachable_enum_branching.otherwise_t3.UnreachableEnumBranching.panic-abort.diff
  632. unreachable_enum_branching.otherwise_t3.UnreachableEnumBranching.panic-unwind.diff
  633. unreachable_enum_branching.otherwise_t4.UnreachableEnumBranching.panic-abort.diff
  634. unreachable_enum_branching.otherwise_t4.UnreachableEnumBranching.panic-unwind.diff
  635. unreachable_enum_branching.otherwise_t4_unreachable_default.UnreachableEnumBranching.panic-abort.diff
  636. unreachable_enum_branching.otherwise_t4_unreachable_default.UnreachableEnumBranching.panic-unwind.diff
  637. unreachable_enum_branching.otherwise_t4_unreachable_default_2.UnreachableEnumBranching.panic-abort.diff
  638. unreachable_enum_branching.otherwise_t4_unreachable_default_2.UnreachableEnumBranching.panic-unwind.diff
  639. unreachable_enum_branching.otherwise_t5_unreachable_default.UnreachableEnumBranching.panic-abort.diff
  640. unreachable_enum_branching.otherwise_t5_unreachable_default.UnreachableEnumBranching.panic-unwind.diff
  641. unreachable_enum_branching.rs
  642. unreachable_enum_branching.simple.UnreachableEnumBranching.panic-abort.diff
  643. unreachable_enum_branching.simple.UnreachableEnumBranching.panic-unwind.diff
  644. unusual_item_types.core.ptr-drop_in_place.Vec_i32_.AddMovesForPackedDrops.before.mir
  645. unusual_item_types.E-V-{constant#0}.built.after.mir
  646. unusual_item_types.rs
  647. unusual_item_types.Test-X-{constructor#0}.built.after.mir
  648. unusual_item_types.{impl#0}-ASSOCIATED_CONSTANT.built.after.mir
tests/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.

Testing a particular MIR pass

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

//@ test-mir-pass: 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. This also lets you test passes that are disabled by default.

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

FileCheck directives

The LLVM FileCheck tool is used to verify the contents of output MIR against CHECK directives present in the test file. This works on the runtime MIR, generated by --emit=mir, and not on the output of a individual passes.

Use // skip-filecheck to prevent FileCheck from running.

To check MIR for function foo, start with a // CHECK-LABEL fn foo( directive.

{{regex}} syntax allows to match regex.

[[name:regex]] syntax allows to bind name to a string matching regex, and refer to it as [[name]] in later directives, regex should be written not to match a leading space. Use [[my_local:_.*]] to name a local, and [[my_bb:bb.*]] to name a block.

Documentation for FileCheck is available here: https://www.llvm.org/docs/CommandGuide/FileCheck.html