about summary refs log tree commit diff
path: root/compiler/rustc_mir_dataflow/src/lib.rs
AgeCommit message (Collapse)AuthorLines
2023-11-27Remove uses of `ResultsClonedCursor`.Nicholas Nethercote-1/+1
By just cloning the entire `Results` in the one place where `ResultsClonedCursor` was used. This is extra allocations but the performance effect is negligible.
2023-11-27Remove another use of `as_results_cursor`.Nicholas Nethercote-0/+1
The new code is a little clunky, but I couldn't see how to make it better.
2023-11-27Remove some unused code relating to `ResultsCloned`.Nicholas Nethercote-1/+1
2023-11-26Use `rustc_fluent_macro::fluent_messages!` directly.Nicholas Nethercote-2/+1
Currently we always do this: ``` use rustc_fluent_macro::fluent_messages; ... fluent_messages! { "./example.ftl" } ``` But there is no need, we can just do this everywhere: ``` rustc_fluent_macro::fluent_messages! { "./example.ftl" } ``` which is shorter.
2023-11-26Avoid need for `{D,Subd}iagnosticMessage` imports.Nicholas Nethercote-1/+0
The `fluent_messages!` macro produces uses of `crate::{D,Subd}iagnosticMessage`, which means that every crate using the macro must have this import: ``` use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage}; ``` This commit changes the macro to instead use `rustc_errors::{D,Subd}iagnosticMessage`, which avoids the need for the imports.
2023-11-23Remove unnecessary `ValueAnalysisWrapper::Direction`.Nicholas Nethercote-3/+1
`Forward` is the default.
2023-11-23Avoid unnecessary exports.Nicholas Nethercote-5/+5
2023-11-23Remove `indexes` module.Nicholas Nethercote-4/+0
It's not useful, and only obfuscates things.
2023-11-23Move `has_rustc_mir_with`.Nicholas Nethercote-17/+1
`lib.rs` is a strange place for it, and it's only used within `rustc_peek.rs`, so it doesn't need to be `pub`.
2023-11-23Remove unused feature.Nicholas Nethercote-1/+0
2023-10-21Remove on_all_drop_children_bits.Camille GILLOT-2/+1
As drop elaboration only tracks places that need dropping, is has become equivalent to `on_all_children_bits`.
2023-10-06Preserve DebugInfo in DeadStoreElimination.Camille GILLOT-0/+1
2023-08-16Rename MaybeUnreachable.Camille GILLOT-1/+1
2023-08-16Allow apply_terminator_effect to customize edges.Camille GILLOT-3/+3
2023-08-16Introduce MaybeUnreachable.Camille GILLOT-2/+2
2023-07-04bring back un_derefer and rewrite it againDrMeepster-0/+1
2023-06-29Merge `un_derefer` into `MovePathLookup`DrMeepster-1/+0
2023-06-27Export AnalysisResults trait in rustc_mir_dataflowFlorian Groult-4/+4
2023-05-18Take MIR dataflow analyses by mutable reference.Jason Newcomb-2/+3
2023-04-18Add `rustc_fluent_macro` to decouple fluent from `rustc_macros`Nilstrieb-1/+1
Fluent, with all the icu4x it brings in, takes quite some time to compile. `fluent_messages!` is only needed in further downstream rustc crates, but is blocking more upstream crates like `rustc_index`. By splitting it out, we allow `rustc_macros` to be compiled earlier, which speeds up `x check compiler` by about 5 seconds (and even more after the needless dependency on `serde_json` is removed from `rustc_data_structures`).
2023-03-29Stabilize a portion of 'once_cell'Trevor Gross-1/+0
Move items not part of this stabilization to 'lazy_cell' or 'once_cell_try'
2023-03-11Simplify message pathsest31-1/+1
This makes it easier to open the messages file while developing on features. The commit was the result of automatted changes: for p in compiler/rustc_*; do mv $p/locales/en-US.ftl $p/messages.ftl; rmdir $p/locales; done for p in compiler/rustc_*; do sed -i "s#\.\./locales/en-US.ftl#../messages.ftl#" $p/src/lib.rs; done
2023-02-22errors: generate typed identifiers in each crateDavid Wood-0/+4
Instead of loading the Fluent resources for every crate in `rustc_error_messages`, each crate generates typed identifiers for its own diagnostics and creates a static which are pulled together in the `rustc_driver` crate and provided to the diagnostic emitter. Signed-off-by: David Wood <david.wood@huawei.com>
2023-02-06Handle discriminants in dataflow-const-prop.Camille GILLOT-0/+1
2022-11-07Add initial version of value analysis and dataflow constant propagationJannis Christopher Köhl-0/+1
2022-09-26remove cfg(bootstrap)Pietro Albini-1/+0
2022-09-15Only enable the let_else feature on bootstrapest31-1/+1
On later stages, the feature is already stable. Result of running: rg -l "feature.let_else" compiler/ src/librustdoc/ library/ | xargs sed -s -i "s#\\[feature.let_else#\\[cfg_attr\\(bootstrap, feature\\(let_else\\)#"
2022-08-23Migrate rustc_mir_dataflow to diagnostic structs5225225-0/+3
2022-07-12add new rval, pull deref earlyouz-a-0/+1
2022-05-22Remove box syntax from rustc_mir_dataflow and rustc_mir_transformest31-1/+0
2022-05-10only_local: always check for misuselcnr-16/+10
2022-05-04Stabilize `bool::then_some`Josh Triplett-1/+0
2022-03-24Implement `apply_switch_int_edge_effects` for backward analysesSamuel E. Moelius III-1/+1
2021-12-16Remove `in_band_lifetimes` from `rustc_mir_dataflow`LegionMammal978-1/+0
See #91867 for more information.
2021-12-14Stabilize iter::zip.PFPoitras-1/+0
2021-12-03Add initial AST and MIR support for unwinding from inline assemblyAmanieu d'Antras-3/+3
2021-10-23update cfg(bootstrap)Pietro Albini-1/+0
2021-10-16Adopt let_else across the compilerest31-0/+1
This performs a substitution of code following the pattern: let <id> = if let <pat> = ... { identity } else { ... : ! }; To simplify it to: let <pat> = ... { identity } else { ... : ! }; By adopting the let_else feature.
2021-10-04Stabilize `const_panic`Jacob Pratt-1/+1
2021-09-15Make rustc_mir_dataflow::framework::graphviz and ↵Will Crichton-2/+2
rustc_mir_transform::MirPass public
2021-09-08Rebase fallout.Camille GILLOT-0/+1
2021-09-07Move the dataflow framework to its own crate.Camille GILLOT-0/+71