about summary refs log tree commit diff
path: root/compiler/rustc_mir_transform/src/inline
AgeCommit message (Collapse)AuthorLines
2025-09-08fixup limit handling codeJana Dönszelmann-1/+1
2025-07-18Be a bit more careful around exotic cycles in in the inlinerMichael Goulet-16/+28
2025-07-06Dont resolve instance of root in mir_callgraph_cyclicMichael Goulet-9/+2
2025-06-23Only store the LocalDefId instead of the whole instance.Camille GILLOT-3/+7
2025-06-22Only compute recursive callees once.Camille GILLOT-126/+145
2025-06-03`FIXME(-Znext-solver)` triagelcnr-1/+1
Co-authored-by: Michael Goulet <michael@errs.io>
2025-04-28AsyncDrop implementation using shim codegen of ↵Andrew Zhogin-1/+4
async_drop_in_place::{closure}, scoped async drop added.
2024-11-18use `TypingEnv` when no `infcx` is availablelcnr-8/+7
the behavior of the type system not only depends on the current assumptions, but also the currentnphase of the compiler. This is mostly necessary as we need to decide whether and how to reveal opaque types. We track this via the `TypingMode`.
2024-08-30Remove `#[macro_use] extern crate tracing` from `rustc_mir_transform`.Nicholas Nethercote-0/+1
2024-08-28Use a reduced recursion limit in the MIR inliner's cycle breakerBen Kimock-1/+9
2024-08-26Stop using a special inner body for the coroutine by-move body for async ↵Michael Goulet-1/+0
closures
2024-07-29Reformat `use` declarations.Nicholas Nethercote-2/+1
The previous commit updated `rustfmt.toml` appropriately. This commit is the outcome of running `x fmt --all` with the new formatting options.
2024-07-02Instance::resolve -> Instance::try_resolve, and other nitsMichael Goulet-1/+1
2024-06-16Rename InstanceDef -> InstanceKindMichael Goulet-16/+16
2024-04-16Add simple async drop glue generationzetanumbers-2/+4
Explainer: https://zetanumbers.github.io/book/async-drop-design.html https://github.com/rust-lang/rust/pull/121801
2024-04-05Auto merge of #123444 - saethlin:const-eval-inline-cycles, r=tmiaskobors-4/+14
Teach MIR inliner query cycle avoidance about const_eval_select Fixes https://github.com/rust-lang/rust/issues/122659 r? tmiasko
2024-04-04Teach MIR inliner query cycle avoidance about const_eval_selectBen Kimock-4/+14
2024-04-02Track reason for creating a `ReifyShim`Matthew Maurer-1/+1
KCFI needs to be able to tell which kind of `ReifyShim` it is examining in order to decide whether to use a concrete type (`FnPtr` case) or an abstract case (`Vtable` case). You can *almost* tell this from context, but there is one case where you can't - if a trait has a method which is *not* `#[track_caller]`, with an impl that *is* `#[track_caller]`, both the vtable and a function pointer created from that method will be `ReifyShim(def_id)`. Currently, the reason is optional to ensure no additional unique `ReifyShim`s are added without KCFI on. However, the case in which an extra `ReifyShim` is created is sufficiently rare that this may be worth revisiting to reduce complexity.
2024-02-12Dejargnonize substShoyu Vanilla-2/+2
2024-02-06Fix drop shim for AsyncFnOnce closure, AsyncFnMut shim for AsyncFn closureMichael Goulet-1/+1
2024-02-06Construct body for by-move coroutine closure outputMichael Goulet-0/+1
2024-02-06Build a shim to call async closures with different AsyncFn trait kindsMichael Goulet-0/+1
2023-09-26subst -> instantiatelcnr-1/+1
2023-07-14refactor(rustc_middle): Substs -> GenericArgMahdi Dibaiee-8/+8
2023-05-29EarlyBinder::new -> EarlyBinder::bindlcnr-1/+1
2023-05-28Replace EarlyBinder(x) with EarlyBinder::new(x)Kyle Matsuda-1/+1
2023-05-06use EarlyBinder in tcx.(try_)subst_mir_and_normalize_erasing_regionsKyle Matsuda-1/+5
2023-04-27rename `needs_subst` to `has_param`Boxy-1/+1
2023-04-21Allow `LocalDefId` as the argument to `def_path_str`Oli Scherer-1/+1
2023-04-20Remove WithOptconstParam.Camille GILLOT-2/+1
2023-03-29Support TLS access into dylibs on WindowsJohn Kåre Alsaker-0/+1
2023-03-27Add a builtin `FnPtr` traitlcnr-0/+3
2023-02-22Remove type-traversal trait aliasesAlan Egerton-1/+1
2022-08-26Replace `Body::basic_blocks()` with field accessTomasz Miąsko-1/+1
2022-07-20consistently use VTable over Vtable (matching stable stdlib API RawWakerVTable)Ralf Jung-1/+1
2022-07-06Update TypeVisitor pathsAlan Egerton-1/+1
2022-06-30Do not ICE when failing to resolve.Camille GILLOT-1/+1
2022-05-20Remove `crate` visibility usage in compilerJacob Pratt-2/+2
2022-05-12Use IndexSet for deterministic orderOli Scherer-3/+2
2022-05-12Gracefully handle normalization failures in the prospective inliner cycle ↵Oli Scherer-1/+4
detector
2022-03-30Spellchecking compiler commentsYuri Astrakhan-1/+1
This PR cleans up the rest of the spelling mistakes in the compiler comments. This PR does not change any literal or code spelling issues.
2022-02-19Adopt let else in more placesest31-6/+3
2022-01-15initial revertEllen-1/+1
2021-12-07Remove `in_band_lifetimes` from `rustc_mir_transform`Scott McMurray-2/+2
This one is a heavy `'tcx` user. Two interesting ones: This one had the `'tcx` declared on the function, despite the trait taking a `'tcx`: ```diff -impl Visitor<'_> for UsedLocals { +impl<'tcx> Visitor<'tcx> for UsedLocals { fn visit_statement(&mut self, statement: &Statement<'tcx>, location: Location) { ``` This one use in-band for one, and underscore for the other: ```diff -pub fn remove_dead_blocks(tcx: TyCtxt<'tcx>, body: &mut Body<'_>) { +pub fn remove_dead_blocks<'tcx>(tcx: TyCtxt<'tcx>, body: &mut Body<'tcx>) { ```
2021-09-07Move rustc_mir::transform to rustc_mir_transform.Camille GILLOT-0/+169