about summary refs log tree commit diff
path: root/compiler/rustc_incremental/src/persist
AgeCommit message (Collapse)AuthorLines
2024-04-21Fix ICE when there is a non-Unicode entry in the incremental crate directorybeetrees-17/+19
2024-04-05Auto merge of #122070 - Zoxc:dep-edges-from-previous, r=cjgillotbors-2/+4
Encode dep graph edges directly from the previous graph when promoting This encodes dep graph edges directly from the previous graph when promoting nodes from a previous session, avoiding allocations / copies. ~~Based on https://github.com/rust-lang/rust/pull/122064 and https://github.com/rust-lang/rust/pull/116375.~~ <table><tr><td rowspan="2">Benchmark</td><td colspan="1"><b>Before</b></th><td colspan="2"><b>After</b></th></tr><tr><td align="right">Time</td><td align="right">Time</td><td align="right">%</th></tr><tr><td>🟣 <b>clap</b>:check:unchanged</td><td align="right">0.4177s</td><td align="right">0.4072s</td><td align="right">💚 -2.52%</td></tr><tr><td>🟣 <b>hyper</b>:check:unchanged</td><td align="right">0.1430s</td><td align="right">0.1420s</td><td align="right"> -0.69%</td></tr><tr><td>🟣 <b>regex</b>:check:unchanged</td><td align="right">0.3106s</td><td align="right">0.3038s</td><td align="right">💚 -2.19%</td></tr><tr><td>🟣 <b>syn</b>:check:unchanged</td><td align="right">0.5823s</td><td align="right">0.5688s</td><td align="right">💚 -2.33%</td></tr><tr><td>🟣 <b>syntex_syntax</b>:check:unchanged</td><td align="right">1.3992s</td><td align="right">1.3692s</td><td align="right">💚 -2.14%</td></tr><tr><td>Total</td><td align="right">2.8528s</td><td align="right">2.7910s</td><td align="right">💚 -2.17%</td></tr><tr><td>Summary</td><td align="right">1.0000s</td><td align="right">0.9803s</td><td align="right">💚 -1.97%</td></tr></table>
2024-03-25Auto merge of #122721 - oli-obk:merge_queries, r=davidtwcobors-1/+1
Replace `mir_built` query with a hook and use mir_const everywhere instead A small perf improvement due to less dep graph handling. Mostly just a cleanup to get rid of one of our many mir queries
2024-03-23Encode dep graph edges directly from the previous graph when promotingJohn KÃ¥re Alsaker-2/+4
2024-03-21rename items -> free_itemsRalf Jung-1/+1
2024-03-20Replace `mir_built` query with a hook and use mir_const everywhere insteadOli Scherer-1/+1
2024-03-13Make incremental sessions identity no longer depend on the crate names ↵John Kåre Alsaker-16/+18
provided by source code
2024-03-05Rename all `ParseSess` variables/fields/lifetimes as `psess`.Nicholas Nethercote-1/+1
Existing names for values of this type are `sess`, `parse_sess`, `parse_session`, and `ps`. `sess` is particularly annoying because that's also used for `Session` values, which are often co-located, and it can be difficult to know which type a value named `sess` refers to. (That annoyance is the main motivation for this change.) `psess` is nice and short, which is good for a name used this much. The commit also renames some `parse_sess_created` values as `psess_created`.
2024-02-22Adjust the `has_errors*` methods.Nicholas Nethercote-3/+3
Currently `has_errors` excludes lint errors. This commit changes it to include lint errors. The motivation for this is that for most places it doesn't matter whether lint errors are included or not. But there are multiple places where they must be includes, and only one place where they must not be included. So it makes sense for `has_errors` to do the thing that fits the most situations, and the new `has_errors_excluding_lint_errors` method in the one exceptional place. The same change is made for `err_count`. Annoyingly, this requires the introduction of `err_count_excluding_lint_errs` for one place, to preserve existing error printing behaviour. But I still think the change is worthwhile overall.
2024-02-17Use better heuristic for printing Cargo specific diagnosticsUrgau-1/+1
2024-02-12Make impl_trait_ref into a query also returning more information about the implOli Scherer-1/+1
2024-01-30hir: Simplify `hir_owner_nodes` queryVadim Petrochenkov-2/+2
The query accept arbitrary DefIds, not just owner DefIds. The return can be an `Option` because if there are no nodes, then it doesn't matter whether it's due to NonOwner or Phantom. Also rename the query to `opt_hir_owner_nodes`.
2024-01-22Tweak error counting.Nicholas Nethercote-4/+4
We have several methods indicating the presence of errors, lint errors, and delayed bugs. I find it frustrating that it's very unclear which one you should use in any particular spot. This commit attempts to instill a basic principle of "use the least general one possible", because that reflects reality in practice -- `has_errors` is the least general one and has by far the most uses (esp. via `abort_if_errors`). Specifics: - Add some comments giving some usage guidelines. - Prefer `has_errors` to comparing `err_count` to zero. - Remove `has_errors_or_span_delayed_bugs` because it's a weird one: in the cases where we need to count delayed bugs, we should really be counting lint errors as well. - Rename `is_compilation_going_to_fail` as `has_errors_or_lint_errors_or_span_delayed_bugs`, for consistency with `has_errors` and `has_errors_or_lint_errors`. - Change a few other `has_errors_or_lint_errors` calls to `has_errors`, as per the "least general" principle. This didn't turn out to be as neat as I hoped when I started, but I think it's still an improvement.
2024-01-16Get rid of the hir_owner query.Camille GILLOT-2/+1
2024-01-10Rename `{create,emit}_warning` as `{create,emit}_warn`.Nicholas Nethercote-11/+11
For consistency with `warn`/`struct_warn`, and also `{create,emit}_err`, all of which use an abbreviated form.
2024-01-04Split StableCompare trait out of StableOrd trait.Michael Woerister-1/+1
StableCompare is a companion trait to `StableOrd`. Some types like `Symbol` can be compared in a cross-session stable way, but their `Ord` implementation is not stable. In such cases, a `StableOrd` implementation can be provided to offer a lightweight way for stable sorting. (The more heavyweight option is to sort via `ToStableHashKey`, but then sorting needs to have access to a stable hashing context and `ToStableHashKey` can also be expensive as in the case of `Symbol` where it has to allocate a `String`.)
2024-01-02Report I/O errors with emit_fatal not emit_errBen Kimock-11/+3
2023-12-24Remove more `Session` methods that duplicate `DiagCtxt` methods.Nicholas Nethercote-3/+3
2023-12-24Remove `Session` methods that duplicate `DiagCtxt` methods.Nicholas Nethercote-35/+36
Also add some `dcx` methods to types that wrap `TyCtxt`, for easier access.
2023-12-12Move some methods from `tcx.hir()` to `tcx`zetanumbers-1/+1
Renamings: - find -> opt_hir_node - get -> hir_node - find_by_def_id -> opt_hir_node_by_def_id - get_by_def_id -> hir_node_by_def_id Fix rebase changes using removed methods Use `tcx.hir_node_by_def_id()` whenever possible in compiler Fix clippy errors Fix compiler Apply suggestions from code review Co-authored-by: Vadim Petrochenkov <vadim.petrochenkov@gmail.com> Add FIXME for `tcx.hir()` returned type about its removal Simplify with with `tcx.hir_node_by_def_id`
2023-12-10remove redundant importssurechen-1/+0
detects redundant imports that can be eliminated. for #117772 : In order to facilitate review and modification, split the checking code and removing redundant imports code into two PR.
2023-12-02Rename `HandlerInner::delayed_span_bugs` as `HandlerInner::span_delayed_bugs`.Nicholas Nethercote-3/+3
For reasons similar to the previous commit.
2023-12-01Remove unused field from `IncrCompSession`.Nicholas Nethercote-2/+2
2023-11-22Call FileEncoder::finish in rmeta encodingBen Kimock-5/+2
2023-11-21Fix `clippy::needless_borrow` in the compilerNilstrieb-9/+9
`x clippy compiler -Aclippy::all -Wclippy::needless_borrow --fix`. Then I had to remove a few unnecessary parens and muts that were exposed now.
2023-11-04Remove unused LoadResult::DecodeIncrCache variantbjorn3-10/+1
2023-10-26Reduce some function exposure.Nicholas Nethercote-5/+8
2023-10-26Tiny comment fixes.Nicholas Nethercote-3/+4
2023-10-26Move a `use` to a more sensible spot.Nicholas Nethercote-1/+2
I.e. in the source file where it's used.
2023-10-26Reduce exposure of three functions used only within `rustc_incremental`.Nicholas Nethercote-6/+3
2023-09-24Don't use a thread to load the dep graphJohn KÃ¥re Alsaker-73/+64
2023-09-21Move `DepKind` to `rustc_query_system` and define it as `u16`John KÃ¥re Alsaker-2/+2
2023-09-08Avoid a `source_span` query when encoding Spans into query resultsJohn KÃ¥re Alsaker-12/+14
2023-08-18Ignore unexpected incr-comp session dirsMartin Nordholts-3/+7
Clearly the code path can be hit without the presence of a compiler bug. All it takes is mischief. See 71698. Ignore problematic directories instead of ICE:ing. `continue`ing is already done for problematic dirs in the code block above us.
2023-08-18More error details upon unexpected incr-comp session dirMartin Nordholts-7/+7
2023-08-13Pass WorkProductMap to build_dep_graph instead of FxIndexMapbjorn3-6/+6
Constructing an FxIndexMap is useless work as the iteration order never matters.
2023-07-30inline format!() args up to and including rustc_codegen_llvmMatthias Krüger-6/+4
2023-07-12Re-format let-else per rustfmt updateMark Rousskov-7/+7
2023-06-11Applied nitsAndrew Xie-12/+9
2023-06-08Removed stable/unstable sort arg from into_sorted_stable_ord, fixed a few ↵Andrew Xie-29/+14
misc issues, added collect to UnordItems
2023-06-05Fixed to_sorted => to_sorted_stable_ordAndrew Xie-35/+47
2023-06-04Fixed unord mistakeAndrew Xie-21/+23
2023-06-04Fixed failing test + minor cleanupAndrew Xie-17/+13
2023-06-04Sorted a FxIndexSet for consistent iteration orderAndrew Xie-0/+1
2023-06-04Switched some uses to UnordMapAndrew Xie-129/+135
2023-06-04Removed use of iteration through a HashMap/HashSet in rustc_incremental and ↵Andrew Xie-18/+18
replaced with IndexMap/IndexSet
2023-05-17Only depend on CFG_VERSION in rustc_interfacejyn-33/+36
this avoids having to rebuild the whole compiler on each commit when `omit-git-hash = false`.
2023-05-04Rollup merge of #111024 - saethlin:stringify-full-svh, r=oli-obkMatthias Krüger-1/+1
Use the full Fingerprint when stringifying Svh Finally circling back, per https://github.com/rust-lang/rust/pull/110367#discussion_r1168340739 r? `@oli-obk`
2023-04-30Use the full Fingerprint when stringifying SvhBen Kimock-1/+1
2023-04-26Remove QueryEngine traitJohn KÃ¥re Alsaker-5/+7