Jacob Pratt
bc2f0fb5a9
Specialize implementations
...
Implementations in stdlib are now optimized as they were before.
2021-05-26 18:07:09 -04:00
Camille GILLOT
a50f1e949b
Get rid of PreviousDepGraph.
2021-05-22 14:14:23 +02:00
Camille GILLOT
c95a5682f7
Remove def_path_str.
2021-05-15 10:37:30 +02:00
Camille GILLOT
eb82187b13
Make the fast path faster.
2021-05-15 10:36:37 +02:00
Camille GILLOT
91444af87a
Refactor try_mark_previous_green.
2021-05-15 10:27:27 +02:00
Camille GILLOT
c2c59ae304
Move key recovering into force_query.
2021-05-15 10:20:56 +02:00
Aaron Hill
a4c0793551
Show nicer error when an 'unstable fingerprints' error occurs
2021-05-10 17:43:51 -04:00
bors
777bb2f612
Auto merge of #84806 - Mark-Simulacrum:try-start-entry, r=cjgillot
...
Streamline try_start code
This shifts some branches around and avoids interleaving parallel and
non-parallel versions of the function too much.
2021-05-06 22:35:06 +00:00
Mark Rousskov
981135ae8e
Streamline try_start code
...
This shifts some branches around and avoids interleaving parallel and
non-parallel versions of the function too much.
2021-05-02 12:25:48 -04:00
Mark Rousskov
61fd56fdb9
Avoid generating QueryMap::extend for each key type
2021-05-01 20:13:18 -04:00
Mark Rousskov
a1d7367429
Move iter_results to dyn FnMut rather than a generic
...
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-29 17:26:46 -04:00
Ralf Jung
bd9556956a
fix feature use in rustc libs
2021-04-18 22:05:45 +02:00
pierwill
0019ca9141
Fix outdated crate names in compiler docs
...
Changes `librustc_X` to `rustc_X`, only in documentation comments.
Plain code comments are left unchanged.
Also fix incorrect file paths.
2021-04-08 11:12:14 -05:00
Camille GILLOT
f3dde45d2a
Enable debugging the dep-graph without debug-assertions.
...
It may also be useful in these cases,
and some CI configurations test without debug assertions.
2021-03-31 17:12:06 +02:00
Camille GILLOT
8ee9322c10
Also profile finishing the encoding.
2021-03-30 18:10:08 +02:00
Camille GILLOT
df24315ddf
Adjust profiling.
2021-03-30 18:10:08 +02:00
Camille GILLOT
fe89f3236c
Address review.
2021-03-30 18:10:08 +02:00
Camille GILLOT
65a8681a17
Add documentation.
2021-03-30 18:10:07 +02:00
Camille GILLOT
c5c935af92
Simplify tracking the encoder state.
2021-03-30 18:10:07 +02:00
Camille GILLOT
e1c99e5fcc
Remove the parallel version.
2021-03-30 18:10:06 +02:00
Camille GILLOT
8208872fa2
Fix parallel compiler.
2021-03-30 18:10:06 +02:00
Camille GILLOT
cfe786e5e0
Fix tests.
...
Avoid invoking queries inside `check_paths`, since we are holding a lock
to the reconstructed graph.
2021-03-30 18:10:06 +02:00
Camille GILLOT
39b306a53d
Do not allocate in decoder.
2021-03-30 18:10:05 +02:00
Camille GILLOT
6bfaf3a9cb
Stream the dep-graph to a file.
2021-03-30 18:09:59 +02:00
Joshua Nelson
441dc3640a
Remove (lots of) dead code
...
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-27 22:16:33 -04:00
Josh Stone
72ebebe474
Use iter::zip in compiler/
2021-03-26 09:32:31 -07:00
Aaron Hill
443cef5618
Debug-print result when an unstable fingerprint is detected
2021-03-19 21:47:57 -04:00
bors
e7e1dc158c
Auto merge of #83007 - Aaron1011:incr-verify-default, r=Mark-Simulacrum
...
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-13 17:52:22 +00:00
Aaron Hill
7d7c81a114
Always run incremental_verify_ich
when re-computing query results
...
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-13 12:00:38 -05:00
Tyson Nottingham
adcbe49b16
rustc_query_system: simplify QueryCache::iter
...
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-03-12 17:34:14 -08:00
Camille GILLOT
903f65f215
Simplify hashing.
2021-02-21 12:22:22 +01:00
Camille GILLOT
a87de890fd
Move print_query_stack to rustc_query_system.
2021-02-20 23:40:56 +01:00
Camille GILLOT
c26d965714
Move report_cycle to rustc_query_system.
...
The call to `ty::print::with_forced_impl_filename_line`
is done when constructing the description,
at the construction of the QueryStackFrame.
2021-02-20 23:36:31 +01:00
Camille GILLOT
3897395787
Move Query to rustc_query_system.
...
Rename it to QueryStackFrame and document a bit.
2021-02-20 22:53:47 +01:00
Camille GILLOT
0144d6a3b7
Do not hold query key in Query.
2021-02-20 22:53:46 +01:00
Camille GILLOT
f96e960ccf
Access the session directly from DepContext.
2021-02-20 22:53:46 +01:00
Camille GILLOT
b27266fdb2
Use a QueryContext for try_mark_green.
2021-02-19 17:51:56 +01:00
Camille GILLOT
ea3d465c95
Move try_load_from_on_disk_cache to the QueryContext.
2021-02-19 17:51:55 +01:00
Camille GILLOT
49c1b07a9e
Decouple QueryContext from DepContext.
2021-02-19 17:51:49 +01:00
Camille GILLOT
6f04883023
Remove QueryAccessors::to_dep_node.
2021-02-19 17:51:49 +01:00
Camille GILLOT
211b05aef3
Don't require a QueryContext to access the DepGraph.
2021-02-19 17:51:49 +01:00
Eduard-Mihai Burtescu
6165d1cc72
Print -Ztime-passes (and misc stats/logs) on stderr, not stdout.
2021-02-18 14:13:38 +02:00
Tomasz Miąsko
db36db2e81
Inline try_get_cached
2021-02-16 00:00:00 +00:00
Camille GILLOT
3fc8ed68e9
Check query cache before calling into the query engine.
2021-02-13 21:14:58 +01:00
Camille GILLOT
280a2866d5
Drop the cache lock earlier.
2021-02-13 21:14:58 +01:00
Camille GILLOT
15b0bc6b83
Separate the query cache from the query state.
2021-02-13 21:14:58 +01:00
Camille GILLOT
9f46259a75
Return a Result for query cache.
2021-02-13 21:14:58 +01:00
Camille GILLOT
8684e9e47d
Merge {get,ensure}_query.
2021-02-13 21:14:57 +01:00
bors
097bc6a84f
Auto merge of #81892 - jyn514:no-inline, r=cjgillot
...
[experiment] remove `#[inline]` from rustc_query_system::plumbing
These functions have a ton of generic parameters and are instantiated
over and over again. Hopefully this will reduce binary bloat and speed
up bootstrapping times.
r? `@cjgillot`
2021-02-09 18:37:33 +00:00
Mark Rousskov
f564d7abba
Switch query descriptions to just String
...
In practice we never used the borrowed variant anyway.
2021-02-08 17:20:41 -05:00