John Kåre Alsaker
afe4c16b29
Split the if to release the lock earlier
2023-03-25 03:12:41 +01:00
John Kåre Alsaker
8f294066b3
Optimize incremental_verify_ich
2023-03-25 02:59:53 +01:00
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