about summary refs log tree commit diff
path: root/compiler/rustc_query_system/src
AgeCommit message (Collapse)AuthorLines
2021-06-15Auto merge of #85154 - cjgillot:lessfn, r=bjorn3bors-35/+53
Reduce amount of function pointers in query invocation. r? `@ghost`
2021-06-07Auto merge of #85903 - bjorn3:rustc_serialize_cleanup, r=varkorbors-6/+6
Remove unused functions and arguments from rustc_serialize
2021-06-04Rollup merge of #85850 - bjorn3:less_feature_gates, r=jyn514Yuki Okushi-4/+0
Remove unused feature gates The first commit removes a usage of a feature gate, but I don't expect it to be controversial as the feature gate was only used to workaround a limitation of rust in the past. (closures never being `Clone`) The second commit uses `#[allow_internal_unstable]` to avoid leaking the `trusted_step` feature gate usage from inside the index newtype macro. It didn't work for the `min_specialization` feature gate though. The third commit removes (almost) all feature gates from the compiler that weren't used anyway.
2021-06-01Make the reasoning more explicit.Camille GILLOT-5/+9
2021-06-01Avoid creating anonymous nodes with zero or one dependency.Camille GILLOT-27/+49
2021-06-01Remove unused functions and arguments from rustc_serializebjorn3-6/+6
2021-05-31Remove unused feature gatesbjorn3-4/+0
2021-05-30Reduce amount of function pointers.Camille GILLOT-35/+53
2021-05-30Auto merge of #85319 - cjgillot:query-simp, r=Mark-Simulacrumbors-151/+163
Simplification of query forcing Extracted from #78780
2021-05-30Auto merge of #83772 - jhpratt:revamp-step-trait, r=Mark-Simulacrumbors-0/+1
Make `Step` trait safe to implement This PR makes a few modifications to the `Step` trait that I believe better position it for stabilization in the short term. In particular, 1. `unsafe trait TrustedStep` is introduced, indicating that the implementation of `Step` for a given type upholds all stated invariants (which have remained unchanged). This is gated behind a new `trusted_step` feature, as stabilization is realistically blocked on min_specialization. 2. The `Step` trait is internally specialized on the `TrustedStep` trait, which avoids a serious performance regression. 3. `TrustedLen` is implemented for `T: TrustedStep` as the latter's invariants subsume the former's. 4. The `Step` trait is no longer `unsafe`, as the invariants must not be relied upon by unsafe code (unless the type implements `TrustedStep`). 5. `TrustedStep` is implemented for all types that implement `Step` in the standard library and compiler. 6. The `step_trait_ext` feature is merged into the `step_trait` feature. I was unable to find any reasoning for the features being split; the `_unchecked` methods need not necessarily be stabilized at the same time, but I think it is useful to have them under the same feature flag. All existing implementations of `Step` will be broken, as it is not possible to `unsafe impl` a safe trait. Given this trait only exists on nightly, I feel this breakage is acceptable. The blanket `impl<T: Step> TrustedLen for T` will likely cause some minor breakage, but this should be covered by the equivalent impl for `TrustedStep`. Hopefully these changes are sufficient to place `Step` in decent position for stabilization, which would allow user-defined types to be used with `a..b` syntax.
2021-05-29Move reconstruct test inwards.Camille GILLOT-5/+4
2021-05-26Specialize implementationsJacob Pratt-0/+1
Implementations in stdlib are now optimized as they were before.
2021-05-22Get rid of PreviousDepGraph.Camille GILLOT-71/+42
2021-05-15Remove def_path_str.Camille GILLOT-4/+0
2021-05-15Make the fast path faster.Camille GILLOT-14/+15
2021-05-15Refactor try_mark_previous_green.Camille GILLOT-117/+112
2021-05-15Move key recovering into force_query.Camille GILLOT-16/+37
2021-05-10Show nicer error when an 'unstable fingerprints' error occursAaron Hill-7/+13
2021-05-06Auto merge of #84806 - Mark-Simulacrum:try-start-entry, r=cjgillotbors-101/+111
Streamline try_start code This shifts some branches around and avoids interleaving parallel and non-parallel versions of the function too much.
2021-05-02Streamline try_start codeMark Rousskov-101/+111
This shifts some branches around and avoids interleaving parallel and non-parallel versions of the function too much.
2021-05-01Avoid generating QueryMap::extend for each key typeMark Rousskov-8/+5
2021-04-29Move iter_results to dyn FnMut rather than a genericMark Rousskov-21/+20
This means that we're no longer generating the iteration/locking code for each invocation site of iter_results, rather just once per query. This is a 15% win in instruction counts when compiling the rustc_query_impl crate.
2021-04-18fix feature use in rustc libsRalf Jung-1/+0
2021-04-08Fix outdated crate names in compiler docspierwill-1/+1
Changes `librustc_X` to `rustc_X`, only in documentation comments. Plain code comments are left unchanged. Also fix incorrect file paths.
2021-03-31Enable debugging the dep-graph without debug-assertions.Camille GILLOT-9/+5
It may also be useful in these cases, and some CI configurations test without debug assertions.
2021-03-30Also profile finishing the encoding.Camille GILLOT-3/+8
2021-03-30Adjust profiling.Camille GILLOT-13/+37
2021-03-30Address review.Camille GILLOT-49/+43
2021-03-30Add documentation.Camille GILLOT-0/+12
2021-03-30Simplify tracking the encoder state.Camille GILLOT-80/+72
2021-03-30Remove the parallel version.Camille GILLOT-135/+13
2021-03-30Fix parallel compiler.Camille GILLOT-1/+3
2021-03-30Fix tests.Camille GILLOT-5/+21
Avoid invoking queries inside `check_paths`, since we are holding a lock to the reconstructed graph.
2021-03-30Do not allocate in decoder.Camille GILLOT-24/+34
2021-03-30Stream the dep-graph to a file.Camille GILLOT-839/+580
2021-03-27Remove (lots of) dead codeJoshua Nelson-19/+3
Found with https://github.com/est31/warnalyzer. Dubious changes: - Is anyone else using rustc_apfloat? I feel weird completely deleting x87 support. - Maybe some of the dead code in rustc_data_structures, in case someone wants to use it in the future? - Don't change rustc_serialize I plan to scrap most of the json module in the near future (see https://github.com/rust-lang/compiler-team/issues/418) and fixing the tests needed more work than I expected. TODO: check if any of the comments on the deleted code should be kept.
2021-03-26Use iter::zip in compiler/Josh Stone-2/+3
2021-03-19Debug-print result when an unstable fingerprint is detectedAaron Hill-1/+1
2021-03-13Auto merge of #83007 - Aaron1011:incr-verify-default, r=Mark-Simulacrumbors-11/+18
Turn `-Z incremental-verify-ich` on by default Issue #82920 showed that the kind of bugs caught by this flag have soundness implications.
2021-03-13Always run `incremental_verify_ich` when re-computing query resultsAaron Hill-11/+18
Issue #82920 showed that the kind of bugs caught by this flag have soundness implications. This causes performance regressions of up to 15.2% during incremental compilation, but this is necessary to catch miscompilations caused by bugs in query implementations.
2021-03-12rustc_query_system: simplify QueryCache::iterTyson Nottingham-22/+17
Minor cleanup to reduce a small amount of complexity and code bloat. Reduces the number of mono items in rustc_query_impl by 15%.
2021-02-21Simplify hashing.Camille GILLOT-33/+24
2021-02-20Move print_query_stack to rustc_query_system.Camille GILLOT-5/+43
2021-02-20Move report_cycle to rustc_query_system.Camille GILLOT-7/+47
The call to `ty::print::with_forced_impl_filename_line` is done when constructing the description, at the construction of the QueryStackFrame.
2021-02-20Move Query to rustc_query_system.Camille GILLOT-95/+124
Rename it to QueryStackFrame and document a bit.
2021-02-20Do not hold query key in Query.Camille GILLOT-4/+7
2021-02-20Access the session directly from DepContext.Camille GILLOT-17/+12
2021-02-19Use a QueryContext for try_mark_green.Camille GILLOT-40/+35
2021-02-19Move try_load_from_on_disk_cache to the QueryContext.Camille GILLOT-6/+8
2021-02-19Decouple QueryContext from DepContext.Camille GILLOT-51/+85