rust/compiler/rustc_middle/src
bors 1322f92634 Auto merge of #107009 - cjgillot:jump-threading, r=pnkfelix
Implement jump threading MIR opt

This pass is an attempt to generalize `ConstGoto` and `SeparateConstSwitch` passes into a more complete jump threading pass.

This pass is rather heavy, as it performs a truncated backwards DFS on MIR starting from each `SwitchInt` terminator. This backwards DFS remains very limited, as it only walks through `Goto` terminators.

It is build to support constants and discriminants, and a propagating through a very limited set of operations.

The pass successfully manages to disentangle the `Some(x?)` use case and the DFA use case. It still needs a few tests before being ready.
2023-10-23 18:05:44 +00:00
..
dep_graph Move DepKind to rustc_query_system and define it as u16 2023-09-21 17:06:14 +02:00
hir Auto merge of #116849 - oli-obk:error_shenanigans, r=cjgillot 2023-10-23 09:59:40 +00:00
hooks add some docs to hooks/mod.rs 2023-09-30 22:33:22 +02:00
infer Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
middle s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
mir Implement JumpThreading pass. 2023-10-21 06:58:38 +00:00
query Auto merge of #116849 - oli-obk:error_shenanigans, r=cjgillot 2023-10-23 09:59:40 +00:00
thir Propagate pattern errors via a new PatKind::Error variant 2023-10-14 13:38:02 +02:00
traits Rollup merge of #106601 - estebank:match-semi, r=cjgillot 2023-10-21 13:58:33 +02:00
ty Rename CoroutineKind::Gen to ::Coroutine 2023-10-20 21:14:01 +00:00
util Merge ExternProviders into the general Providers struct 2023-09-22 20:15:34 +00:00
arena.rs Implement Deref<LayoutS> for Layout 2023-10-02 21:31:16 +02:00
error.rs don't point at const usage site for resolution-time errors 2023-09-14 22:34:05 +02:00
lib.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
lint.rs give FutureIncompatibilityReason variants more explicit names 2023-09-22 08:51:18 +02:00
macros.rs Rename CloneLiftImpls as TrivialLiftImpls. 2023-09-18 09:37:09 +10:00
metadata.rs rustc_metadata: Remove Span from ModChild 2023-04-18 17:25:04 +03:00
tests.rs mv compiler to compiler/ 2020-08-30 18:45:07 +03:00
thir.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
values.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00