Eduard-Mihai Burtescu
df6650f38c
rustc: move ...::<impl ...> printing into pretty_path_qualified.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
aec5a48481
rustc: move <...>-less impl path special-case to pretty_path_qualified.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
a15bfc6f48
rustc: merge PrintCx::parameterized and def_path printing.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
b0fbca953f
rustc: integrate LocalPathPrinter's behavior into FmtPrinter.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
e0c75ff40d
rustc: rename item_path to def_path (except the module in ty).
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
3e1cef7007
rustc: pass Option<&Substs> and Namespace around in ty::item_path.
2019-03-15 13:25:10 +02:00
Eduard-Mihai Burtescu
2386168139
rustc: explicitly pass the namespace to PrintCx::parameterized.
2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
08d27441ec
rustc: move the formatter into ty::print::PrintCx.
2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
732b71a1ba
rustc: add a ty::RegionKind::display_outputs_anything method to avoid printing to a string.
2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
329b8ca818
rustc: always rely on '_ to be not printed by ty::Region itself.
2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
1c2a3c5d79
rustc: support impl's in PrintCx::parameterized.
2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
fbbc7e915d
rustc: rewrite PrintCx::parameterized to be much simpler and more general.
2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
939c69c71f
rustc: use define_print! to implement fmt::{Display,Debug} for Kind.
2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
eb525b0916
rustc: tie the 'tcx between Print and PrintCx in ty::print.
2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
3bad9f7b3d
rustc: implement fmt::{Debug,Display} on Ty instead of TyS.
2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
01fa283d6f
rustc: remove fmt::{Debug,Display} from ty::TyKind.
2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
0b3ab4018b
rustc: keep a TyCtxt in PrintCx and use it instead of ty::tls.
2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
5f3841ca2f
rustc: rename PrintContext to PrintCx.
2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
852fc6d2b6
rustc: don't support tcx.lift returning None in ppaux.
2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
372b1a5930
rustc: uniformize all lift expect messages to "could not lift for printing".
2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
297546e62d
rustc: add a 'tcx parameter to Print.
2019-03-15 09:26:13 +02:00
Eduard-Mihai Burtescu
382d24e7d7
rustc: start moving util::ppaux to ty::print.
2019-03-15 09:26:13 +02:00
bors
2a8f6a7806
Auto merge of #58488 - wesleywiser:llvm_prof, r=michaelwoerister
...
Replace TimeLine LLVM profiling with the self profiler
2019-03-14 08:38:56 +00:00
John Kåre Alsaker
3936aff216
Use derive macro for HashStable
2019-03-13 00:03:13 +01:00
Wesley Wiser
4c8cc14186
Replace TimeLine with SelfProfiler
2019-03-10 11:10:55 -04: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