diff options
| author | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2024-02-15 00:00:00 +0000 |
|---|---|---|
| committer | Tomasz Miąsko <tomasz.miasko@gmail.com> | 2024-02-15 00:00:00 +0000 |
| commit | 5f4e4baddb104ee3e63d1db24a4c2a73e1a703cf (patch) | |
| tree | da099695749eac3be1ffd25e9f28e95ff5cefa54 /compiler/rustc_mir_transform/src | |
| parent | ee9c7c940c07d8b67c9a6b2ec930db70dcd23a46 (diff) | |
| download | rust-5f4e4baddb104ee3e63d1db24a4c2a73e1a703cf.tar.gz rust-5f4e4baddb104ee3e63d1db24a4c2a73e1a703cf.zip | |
Skip coroutines in jump threading to avoid query cycles
Diffstat (limited to 'compiler/rustc_mir_transform/src')
| -rw-r--r-- | compiler/rustc_mir_transform/src/jump_threading.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/rustc_mir_transform/src/jump_threading.rs b/compiler/rustc_mir_transform/src/jump_threading.rs index 78ba166ba43..ad8f21ffbda 100644 --- a/compiler/rustc_mir_transform/src/jump_threading.rs +++ b/compiler/rustc_mir_transform/src/jump_threading.rs @@ -68,6 +68,12 @@ impl<'tcx> MirPass<'tcx> for JumpThreading { let def_id = body.source.def_id(); debug!(?def_id); + // Optimizing coroutines creates query cycles. + if tcx.is_coroutine(def_id) { + trace!("Skipped for coroutine {:?}", def_id); + return; + } + let param_env = tcx.param_env_reveal_all_normalized(def_id); let map = Map::new(tcx, body, Some(MAX_PLACES)); let loop_headers = loop_headers(body); |
