bors
822c10feb7
Auto merge of #109046 - Zoxc:split-execute-job, r=cjgillot,michaelwoerister
...
Split `execute_job` into `execute_job_incr` and `execute_job_non_incr`
`execute_job` was a bit large, so this splits it in 2. Performance was neutral locally, but this may affect bootstrap times.
2023-03-20 23:53:09 +00:00
John Kåre Alsaker
c4bcac628c
Add some assertions
2023-03-19 17:39:34 +01:00
John Kåre Alsaker
f48ff4a2cf
Use Debug for formatting the dep nodes
2023-03-12 09:55:35 +01:00
John Kåre Alsaker
867de8bbb8
Remove graph parameter from try_force_from_dep_node
2023-03-12 09:55:35 +01:00
John Kåre Alsaker
8dd0f20ee6
Optimize dep node backtrace and ignore fatal errors
2023-03-12 09:55:35 +01:00
John Kåre Alsaker
42a0aaa934
Remove dep_node_index_of_opt and dep_node_index_of
2023-03-09 08:00:54 +01:00
John Kåre Alsaker
62e4bcb168
Address comments
2023-03-09 08:00:40 +01:00
John Kåre Alsaker
60ed37c2e1
Move dep graph methods to DepGraphData to avoid branches and unwraps
2023-03-09 06:14:34 +01:00
John Kåre Alsaker
3b26d71e04
Avoid implementing Debug for QueryConfig
2023-02-26 23:35:52 +01:00
John Kåre Alsaker
ab5d3fbe7d
Add inlining attributes for query system functions
2023-02-25 06:11:02 +01:00
bors
f0bc76ac41
Auto merge of #91742 - cjgillot:force-backtrace, r=estebank
...
Print a backtrace when query forcing fails.
The aim of this PR is to help debugging incremental compilation bugs where query forcing panics.
For instance: https://github.com/rust-lang/rust/issues/90682 https://github.com/rust-lang/rust/issues/90697 https://github.com/rust-lang/rust/issues/90715 https://github.com/rust-lang/rust/issues/90739 https://github.com/rust-lang/rust/issues/91401
These bugs happen when the dep-graph attempts to force a dep-node whose fingerprint does not correspond to an actual DefPathHash. PR https://github.com/rust-lang/rust/pull/91741 attempts to hide this bug.
I still don't know how to reproduce these bugs, so I sadly could not test this debugging device.
2023-02-24 23:48:44 +00:00
bors
b5c8c329a7
Auto merge of #108058 - Zoxc:query-ctxtx-byval, r=cjgillot
...
Pass `DepContext` and `QueryContext` by value when practical
This removes some indirections for a minor performance improvement.
<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</td><td align="right">1.8294s</td><td align="right">1.8255s</td><td align="right"> -0.21%</td></tr><tr><td>🟣 <b>hyper</b>:check</td><td align="right">0.2667s</td><td align="right">0.2669s</td><td align="right"> 0.07%</td></tr><tr><td>🟣 <b>regex</b>:check</td><td align="right">1.0080s</td><td align="right">1.0063s</td><td align="right"> -0.17%</td></tr><tr><td>🟣 <b>syn</b>:check</td><td align="right">1.6335s</td><td align="right">1.6295s</td><td align="right"> -0.24%</td></tr><tr><td>🟣 <b>syntex_syntax</b>:check</td><td align="right">6.3633s</td><td align="right">6.3344s</td><td align="right"> -0.45%</td></tr><tr><td>Total</td><td align="right">11.1009s</td><td align="right">11.0627s</td><td align="right"> -0.34%</td></tr><tr><td>Summary</td><td align="right">1.0000s</td><td align="right">0.9980s</td><td align="right"> -0.20%</td></tr></table>
2023-02-17 08:23:53 +00:00
Maybe Waffle
8751fa1a9a
if $c:expr { Some($r:expr) } else { None } =>> $c.then(|| $r)
2023-02-16 15:26:00 +00:00
John Kåre Alsaker
b3a4fe7d4e
Pass DepContext and QueryContext by value when practical
2023-02-14 17:21:18 +01:00
John Kåre Alsaker
9539737008
Make an optimal cold path for query_cache_hit
2023-02-06 15:22:12 +01:00
Camille GILLOT
870dd1678e
Use OnDrop.
2023-01-28 12:38:22 +00:00
Camille GILLOT
e33e2d6e9e
Attempt to reduce perf impact.
2023-01-28 11:47:15 +00:00
Camille GILLOT
87644d85a2
Print a backtrace when query forcing fails.
2023-01-28 11:42:46 +00:00
Maybe Waffle
6a28fb42a8
Remove double spaces after dots in comments
2023-01-17 08:09:33 +00:00
nils
fd7a159710
Fix uninlined_format_args for some compiler crates
...
Convert all the crates that have had their diagnostic migration
completed (except save_analysis because that will be deleted soon and
apfloat because of the licensing problem).
2023-01-05 19:01:12 +01:00
Camille GILLOT
4719cb3036
Ignore span references from diagnostics.
...
The diagnostics are replayed at the correct place anyway.
2022-12-25 18:48:42 +00:00
Nilstrieb
8bfd6450c7
A few small cleanups for newtype_index
...
Remove the `..` from the body, only a few invocations used it and it's
inconsistent with rust syntax.
Use `;` instead of `,` between consts. As the Rust syntax gods inteded.
2022-12-18 21:47:28 +01:00
Nilstrieb
91c3c2040c
Make #[max] an attribute in newtype_index
2022-12-18 21:22:14 +01:00
KaDiWa
9bc69925cb
compiler: remove unnecessary imports and qualified paths
2022-12-10 18:45:34 +01:00
Oli Scherer
f693b7848e
feed resolver_for_lowering instead of storing it in a field
2022-12-05 10:58:55 +00:00
Oli Scherer
ab75d777de
Fill in def_span when creating def ids.
...
This makes sure that ICEing because of def ids created outside of ast lowering will be able to produce a query backtrace and not cause a double panic because of trying to call the `def_span` query
2022-12-01 10:33:28 +00:00
Camille GILLOT
ee7a9a8641
Expand hash check.
2022-11-29 18:41:55 +00:00
Camille GILLOT
5471381349
Allow to set a query's result as a side effect.
2022-11-29 18:40:59 +00:00
Camille GILLOT
ca42dd6716
Sanity check fingerprints in the dep-graph.
2022-11-29 18:39:03 +00:00
Maybe Waffle
1d42936b18
Prefer doc comments over //-comments in compiler
2022-11-27 11:19:04 +00:00
Boxy
72d8879c29
make error_reported check for delayed bugs
2022-11-24 11:12:46 +00:00
Nilstrieb
6d26ea86da
Rename Ctxt and CTX to Tcx and Qcx
...
This makes it consistent and clear which context is used.
2022-11-06 13:25:06 +01:00
Nilstrieb
16558bd267
Rename tcx to qcx when it's a QueryContext
2022-11-06 13:25:06 +01:00
Nilstrieb
91971f293c
Improve tracing logging
2022-11-06 13:25:06 +01:00
Camille GILLOT
6019cbbfd3
Allow query system to recover a HirId.
2022-10-01 15:58:42 +02:00
Joshua Nelson
00cde6d4b9
Move the codegen_unit debug assert from rustc_query_system to query_impl
...
This allows removing a function from the `DepKind` trait.
2022-09-25 12:08:36 -05:00
Joshua Nelson
ccc8d000f2
Move some more code from rustc_middle to rustc_query_system
2022-09-25 12:08:36 -05:00
Joshua Nelson
f3f91bb514
Move functions on DepKindStruct from rustc_middle to rustc_query_system
2022-09-25 12:07:17 -05:00
Joshua Nelson
93a0fb190e
Move DepKindStruct from rustc_middle to rustc_query_system
2022-09-25 11:56:23 -05:00
Camille GILLOT
fc43df0333
Revert "Auto merge of #101620 - cjgillot:compute_lint_levels_by_def, r=oli-obk"
...
This reverts commit 2cb9a65684 , reversing
changes made to 750bd1a7ff .
2022-09-22 19:36:11 +02:00
Camille GILLOT
bd45139cb0
Allow query system to recover a HirId.
2022-09-14 19:04:13 +02:00
Joshua Nelson
3c9765cff1
Rename debugging_opts to unstable_opts
...
This is no longer used only for debugging options (e.g. `-Zoutput-width`, `-Zallow-features`).
Rename it to be more clear.
2022-07-13 17:47:06 -05:00
bors
86b8dd5389
Auto merge of #99028 - tmiasko:inline, r=estebank
...
Miscellaneous inlining improvements
Add `#[inline]` to a few trivial non-generic methods from a perf report
that otherwise wouldn't be candidates for inlining.
2022-07-09 04:34:51 +00:00
Tomasz Miąsko
87374de3ad
Miscellaneous inlining improvements
...
Add `#[inline]` to a few trivial non-generic methods from a perf report
that otherwise wouldn't be candidates for inlining.
2022-07-07 22:20:08 +02:00
bors
0f573a0c54
Auto merge of #95573 - cjgillot:lower-query, r=michaelwoerister
...
Make lowering a query
Split from https://github.com/rust-lang/rust/pull/88186 .
This PR refactors the relationship between lowering and the resolver outputs in order to make lowering itself a query.
In a first part, lowering is changed to avoid modifying resolver outputs, by maintaining its own data structures for creating new `NodeId`s and so.
Then, the `TyCtxt` is modified to allow creating new `LocalDefId`s from inside it. This is done by:
- enclosing `Definitions` in a lock, so as to allow modification;
- creating a query `register_def` whose purpose is to declare a `LocalDefId` to the query system.
See `TyCtxt::create_def` and `TyCtxt::iter_local_def_id` for more detailed explanations of the design.
2022-07-07 18:14:44 +00:00
Camille GILLOT
e912c8dfe0
Use a dedicated DepKind for the forever-red node.
2022-07-06 23:20:12 +02:00
Camille GILLOT
15530a1c84
Create a forever red node and use it to force side effects.
2022-07-06 23:11:44 +02:00
Camille GILLOT
43bb31b954
Allow to create definitions inside the query system.
2022-07-06 22:50:55 +02:00
David Wood
8371a036ea
incr: cache dwarf objects in work products
...
Cache DWARF objects alongside object files in work products when those
exist so that DWARF object files are available for thorin in packed mode
in incremental scenarios.
Signed-off-by: David Wood <david.wood@huawei.com>
2022-07-06 11:15:13 +01:00
Gary Guo
8b7299dd12
Remove likely! and unlikely! macro from compiler
2022-06-18 04:52:11 +01:00