John Kåre Alsaker
3936aff216
Use derive macro for HashStable
2019-03-13 00:03:13 +01:00
ljedrz
cd06038b54
HirIdification: replace NodeId method calls
2019-03-07 09:22:43 +01:00
varkor
0d1c9c08d7
Pretty printing for const generics
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-03-05 22:11:04 +00:00
Wesley Wiser
f20ad70439
Use FxHashMap
2019-03-03 10:07:32 -05:00
Wesley Wiser
9d26789495
Reduce the size of events by using a u64 instead of Instant
...
Part of #58372
2019-03-03 10:07:32 -05:00
Wesley Wiser
fccc84199c
Remove profiler output and replace with a raw event dump
...
Related to #58372
2019-03-03 10:07:32 -05:00
Dan Robertson
08bd4ff998
Rename variadic to c_variadic
...
Function signatures with the `variadic` member set are actually
C-variadic functions. Make this a little more explicit by renaming the
`variadic` boolean value, `c_variadic`.
2019-02-27 10:21:54 -05:00
csmoe
cf11729787
rename Substs to InternalSubsts
...
Change-Id: I3fa00e999a2ee4eb72db1fdf53a8633b49176a18
2019-02-27 00:39:13 +08:00
Niko Matsakis
378741b703
print more information for closures when -Zverbose is given
...
Ideally, we'd probably print the closure substs themselves actually.
2019-02-15 14:27:10 +01:00
Mazdak Farrokhzad
f9c9512628
Rollup merge of #58309 - wesleywiser:add_more_profiler_events, r=michaelwoerister
...
Add more profiler events
- Adds Start\Stop events for time spent loading incremental query results from disk.
- Adds Start\Stop events for time spent blocked waiting for queries to complete (when parallel queries are enabled).
r? @michaelwoerister
2019-02-14 08:24:10 +01:00
Wesley Wiser
e9ebc2e956
[self-profiler] Misc cleanups
2019-02-11 18:01:37 -05:00
Wesley Wiser
8170828cb9
Capture time spent blocked waiting on queries
...
This captures time spent blocked when a query is waiting for another
query to finish executing in another thread.
2019-02-11 18:01:33 -05:00
Wesley Wiser
ae044ee893
Add self profiler events for loading incremental query results from disk
2019-02-11 18:00:46 -05:00
Alexander Regueiro
c3e182cf43
rustc: doc comments
2019-02-10 23:42:32 +00:00
bors
c3d2490433
Auto merge of #58151 - ljedrz:HirIdify_rustc, r=Zoxc
...
Partially HirId-ify rustc
Another step towards https://github.com/rust-lang/rust/pull/57578 .
2019-02-10 14:30:37 +00:00
bors
68650cacf2
Auto merge of #58085 - wesleywiser:profiler_2, r=wesleywiser
...
Implement more detailed self profiling
Timing data and cache hits/misses are now recorded at the query level.
This allows us to show detailed per query information such as total time
for each query.
To see detailed query information in the summary pass the `-Z verbose`
flag. For example:
```
rustc -Z self-profile -Z verbose hello_world.rs
```
results in something like:
```md
Self profiling results:
| Phase | Time (ms) | Time (%) | Queries | Hits (%)
| ----------------------------------------- | -------------- | -------- | -------------- | --------
| Other | 177 | 54.97 | 8094 | 45.47
| - {time spent not running queries} | 113 | 35.09 | 0 | 0.00
| - const_eval | 16 | 4.97 | 26 | 11.54
| - type_of | 9 | 2.80 | 627 | 27.75
| - const_eval_raw | 8 | 2.48 | 22 | 0.00
| - adt_def | 7 | 2.17 | 381 | 11.55
| - visible_parent_map | 7 | 2.17 | 99 | 98.99
| - item_attrs | 6 | 1.86 | 698 | 50.14
| - item_children | 5 | 1.55 | 2815 | 0.00
| - adt_dtorck_constraint | 4 | 1.24 | 2 | 0.00
| - adt_destructor | 2 | 0.62 | 15 | 86.67
| TypeChecking | 53 | 16.46 | 2834 | 79.89
| - trait_impls_of | 9 | 2.80 | 65 | 86.15
| - evaluate_obligation | 7 | 2.17 | 80 | 2.50
| - const_is_rvalue_promotable_to_static | 6 | 1.86 | 1 | 0.00
| - is_copy_raw | 6 | 1.86 | 29 | 58.62
| - rvalue_promotable_map | 6 | 1.86 | 2 | 50.00
| - {time spent not running queries} | 6 | 1.86 | 0 | 0.00
| - typeck_item_bodies | 5 | 1.55 | 1 | 0.00
| - typeck_tables_of | 5 | 1.55 | 19 | 94.74
| - dropck_outlives | 2 | 0.62 | 1 | 0.00
| - layout_raw | 1 | 0.31 | 668 | 87.87
| Linking | 48 | 14.91 | 43 | 46.51
| - {time spent not running queries} | 48 | 14.91 | 0 | 0.00
| Codegen | 29 | 9.01 | 420 | 61.90
| - {time spent not running queries} | 16 | 4.97 | 0 | 0.00
| - collect_and_partition_mono_items | 11 | 3.42 | 13 | 92.31
| - mir_const | 1 | 0.31 | 1 | 0.00
| - mir_validated | 1 | 0.31 | 3 | 66.67
| Expansion | 14 | 4.35 | 0 | 0.00
| - {time spent not running queries} | 14 | 4.35 | 0 | 0.00
| BorrowChecking | 1 | 0.31 | 12 | 41.67
| - borrowck | 1 | 0.31 | 2 | 50.00
| Parsing | 0 | 0.00 | 0 | 0.00
Optimization level: No
Incremental: off
```
<details>
<summary>Rendered</summary>
Self profiling results:
| Phase | Time (ms) | Time (%) | Queries | Hits (%)
| ----------------------------------------- | -------------- | -------- | -------------- | --------
| **Other** | **177** | **54.97** | **8094** | **45.47**
| - {time spent not running queries} | 113 | 35.09 | 0 | 0.00
| - const_eval | 16 | 4.97 | 26 | 11.54
| - type_of | 9 | 2.80 | 627 | 27.75
| - const_eval_raw | 8 | 2.48 | 22 | 0.00
| - adt_def | 7 | 2.17 | 381 | 11.55
| - visible_parent_map | 7 | 2.17 | 99 | 98.99
| - item_attrs | 6 | 1.86 | 698 | 50.14
| - item_children | 5 | 1.55 | 2815 | 0.00
| - adt_dtorck_constraint | 4 | 1.24 | 2 | 0.00
| - adt_destructor | 2 | 0.62 | 15 | 86.67
| TypeChecking | 53 | 16.46 | 2834 | 79.89
| - trait_impls_of | 9 | 2.80 | 65 | 86.15
| - evaluate_obligation | 7 | 2.17 | 80 | 2.50
| - const_is_rvalue_promotable_to_static | 6 | 1.86 | 1 | 0.00
| - is_copy_raw | 6 | 1.86 | 29 | 58.62
| - rvalue_promotable_map | 6 | 1.86 | 2 | 50.00
| - {time spent not running queries} | 6 | 1.86 | 0 | 0.00
| - typeck_item_bodies | 5 | 1.55 | 1 | 0.00
| - typeck_tables_of | 5 | 1.55 | 19 | 94.74
| - dropck_outlives | 2 | 0.62 | 1 | 0.00
| - layout_raw | 1 | 0.31 | 668 | 87.87
| Linking | 48 | 14.91 | 43 | 46.51
| - {time spent not running queries} | 48 | 14.91 | 0 | 0.00
| Codegen | 29 | 9.01 | 420 | 61.90
| - {time spent not running queries} | 16 | 4.97 | 0 | 0.00
| - collect_and_partition_mono_items | 11 | 3.42 | 13 | 92.31
| - mir_const | 1 | 0.31 | 1 | 0.00
| - mir_validated | 1 | 0.31 | 3 | 66.67
| Expansion | 14 | 4.35 | 0 | 0.00
| - {time spent not running queries} | 14 | 4.35 | 0 | 0.00
| BorrowChecking | 1 | 0.31 | 12 | 41.67
| - borrowck | 1 | 0.31 | 2 | 50.00
| Parsing | 0 | 0.00 | 0 | 0.00
Optimization level: No
Incremental: off
</details>
cc @nikomatsakis @michaelwoerister @Zoxc
Fixes #54141
2019-02-10 11:18:50 +00:00
varkor
29f7206366
Add const params to Def
...
Co-Authored-By: Gabriel Smith <yodaldevoid@users.noreply.github.com>
2019-02-07 15:02:17 +01:00
Wesley Wiser
584081af4a
Calculate self-times not total times
2019-02-07 14:15:57 +01:00
Wesley Wiser
a568e7e47b
Add #[inline] annotations
2019-02-07 14:15:57 +01:00
Wesley Wiser
5bb96edbb2
Implement more detailed self profiling
...
Timing data and cache hits/misses are now recorded at the query level.
This allows us to show detailed per query information such as total time
for each query.
To see detailed query information in the summary pass the `-Z verbose`
flag. For example:
```
rustc -Z self-profile -Z verbose hello_world.rs
```
2019-02-07 14:15:54 +01:00
ljedrz
8d6e5fc20f
rustc: partially HirIdify
2019-02-05 20:26:24 +01:00
Mark Mansi
e957ed9d10
move librustc to 2018
2019-02-05 12:45:47 -06:00
Niko Matsakis
1336b8e8c7
integrate trait aliases into def-paths / metadata
...
Co-authored-by: Alexander Regueiro <alexreg@me.com>
2019-01-10 17:04:19 -05:00
bors
2f19f8cec9
Auto merge of #56988 - alexcrichton:monotonic-instant, r=sfackler
...
std: Force `Instant::now()` to be monotonic
This commit is an attempt to force `Instant::now` to be monotonic
through any means possible. We tried relying on OS/hardware/clock
implementations, but those seem buggy enough that we can't rely on them
in practice. This commit implements the same hammer Firefox recently
implemented (noted in #56612 ) which is to just keep whatever the lastest
`Instant::now()` return value was in memory, returning that instead of
the OS looks like it's moving backwards.
Closes #48514
Closes #49281
cc #51648
cc #56560
Closes #56612
Closes #56940
2019-01-08 11:30:19 +00:00
John Kåre Alsaker
23c742cce7
Rename some functions
2019-01-07 18:50:51 +01:00
John Kåre Alsaker
66fe06b1b9
Fix and optimize query profiling
2019-01-07 18:47:19 +01:00
Alex Crichton
255a3f3e18
std: Force Instant::now() to be monotonic
...
This commit is an attempt to force `Instant::now` to be monotonic
through any means possible. We tried relying on OS/hardware/clock
implementations, but those seem buggy enough that we can't rely on them
in practice. This commit implements the same hammer Firefox recently
implemented (noted in #56612 ) which is to just keep whatever the lastest
`Instant::now()` return value was in memory, returning that instead of
the OS looks like it's moving backwards.
Closes #48514
Closes #49281
cc #51648
cc #56560
Closes #56612
Closes #56940
2019-01-07 08:00:47 -08:00
bors
2fba17fc97
Auto merge of #56837 - arielb1:nonprincipal-trait-objects, r=nikomatsakis
...
Add support for trait-objects without a principal
The hard-error version of #56481 - should be merged after we do something about the `traitobject` crate.
Fixes #33140 .
Fixes #57057 .
r? @nikomatsakis
2019-01-05 03:36:31 +00:00
bors
d6d32ac25d
Auto merge of #56723 - oli-obk:lazy_const, r=nikomatsakis
...
Don't emit `Unevaluated` from `const_eval`
cc @eddyb @RalfJung
2019-01-04 17:01:24 +00:00
Ariel Ben-Yehuda
10a89400cf
alphabetize marker traits when printed
...
This makes sure they are printed in a compiler-version-independent
order, avoiding ui test instability.
2019-01-04 15:09:09 +02:00
Ariel Ben-Yehuda
4ab27b255c
fix ppaux
2019-01-04 00:34:52 +02:00
Ariel Ben-Yehuda
3aa1503a61
add support for principal-less trait object types
...
should be a pure refactoring.
2019-01-04 00:34:52 +02:00
Matthew Jasper
7ba17aa72f
Display impl Sized correctly
...
It used to display as just `impl`
2019-01-03 20:49:01 +00:00
Niko Matsakis
cf2f7cccb4
pacify the mercilous tidy
2019-01-02 17:35:06 -05:00
Niko Matsakis
77924de4a6
refactor highlighting to take any RegionKind, making it more general
2019-01-02 17:35:06 -05:00
Niko Matsakis
1597f2a0fc
add the ability to highlight placeholders
2019-01-02 17:35:05 -05:00
Niko Matsakis
37b0b3e9a3
generalize region highlights into a struct
2019-01-02 17:35:05 -05:00
Niko Matsakis
995192a472
make get_highlight_region_for_regionvid only affect re-vid
...
In NLL, ReVid is all there is, but I might want to repurpose.
2019-01-02 17:35:05 -05:00
Oliver Scherer
b903cb9d60
Move the Unevaluated constant arm upwards in the type structure
2019-01-01 20:05:02 +01:00
Vadim Petrochenkov
60d1fa70bb
Address review comments
...
Say "trait" instead of "type" in diagnostics for `dyn Trait`
2019-01-01 01:39:55 +03:00
Mark Rousskov
2a663555dd
Remove licenses
2018-12-25 21:08:33 -07:00
Wesley Wiser
771e8b82af
[self-profiler] Add column for percent of total time
2018-12-10 22:25:52 -05:00
Alexander Regueiro
ee89c088b0
Various minor/cosmetic improvements to code
2018-12-07 23:53:34 +00:00
bors
4a45578bc5
Auto merge of #56502 - Zoxc:hir-func, r=eddyb
...
Use a function to access the Hir map to be able to turn it into a query later
r? @eddyb
2018-12-07 20:04:06 +00:00
kennytm
aa5ba8315a
Rollup merge of #56555 - Mark-Simulacrum:stderr-profile, r=wesleywiser
...
Send textual profile data to stderr, not stdout
This makes it possible to run with RUSTFLAGS="-Zself-profile" without
having to redirect compiler output; otherwise Cargo will error out due
to non-empty compiler stdout.
r? @wesleywiser
2018-12-07 12:42:34 +08:00
John Kåre Alsaker
a70babed03
Use a function to access the Hir map to be able to turn it into a query later
2018-12-06 17:24:36 +01:00
Mark Rousskov
84443a3a24
Send textual profile data to stderr, not stdout
...
This makes it possible to run with RUSTFLAGS="-Zself-profile" without
having to redirect compiler output; otherwise Cargo will error out due
to non-empty compiler stdout.
2018-12-05 21:48:25 -07:00
ljedrz
d0c64bb296
cleanup: remove static lifetimes from consts
2018-12-04 12:46:10 +01:00
Eduard-Mihai Burtescu
e305994beb
proc_macro: introduce a "bridge" between clients (proc macros) and servers (compiler front-ends).
2018-11-30 06:15:19 +02:00
Mark Rousskov
2d2b7c01eb
Make JSON output from -Zprofile-json valid
2018-11-25 15:43:00 -07:00