Ralf Jung
3a3691f187
when there are multiple filenames, print what got interpreted as 2nd filename
2019-02-10 13:01:09 +01: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
bors
de111e6367
Auto merge of #58103 - RalfJung:mir-shim-dump, r=eddyb
...
Make -Zdump-mir dump shims
Fixes https://github.com/rust-lang/rust/issues/53532 by (a) making the MIR shim generation use the MIR pass infrastructure, and (b) fixing said infrastructure to handle the fallout.
Cc @eddyb @oli-obk
2019-02-10 08:52:10 +00:00
Taiki Endo
2be0993c4e
Revert removed #![feature(nll)]
2019-02-10 16:13:30 +09:00
bors
2e08bb1dd2
Auto merge of #58339 - Mark-Simulacrum:embedded-book, r=Mark-Simulacrum
...
Add EmbeddedBook to test list in bootstrap
r? @alexcrichton
2019-02-10 04:34:12 +00:00
Mark Rousskov
80942e95ea
Add EmbeddedBook to test list in bootstrap
2019-02-09 19:42:23 -07:00
bors
1bfb44133d
Auto merge of #57770 - Zoxc:no-hash-query, r=michaelwoerister
...
Add a query type which is always marked as red if it runs
This is useful for queries which produce results which are very likely to change if their inputs do.
I also expect this to be useful for end to end queries because 1) we don't need `HashStable` impls and 2) we avoid the overhead of hashing the result of large results like the AST or the HIR map.
r? @michaelwoerister
2019-02-10 01:33:17 +00:00
bors
abcfc3b762
Auto merge of #58065 - alexreg:refactor-smart_resolve_path_fragment, r=petrochenkov
...
Factor out error reporting from `smart_resolve_path_fragment` fn
This function was ridiculously monolithic before. We now have three rather-less-monolithic-and-horrifying functions.
r? @centril
2019-02-09 23:02:15 +00:00
Ralf Jung
a01efbcbec
operand-to-place copies should never be overlapping
2019-02-09 21:24:29 +01:00
bors
3315728c06
Auto merge of #57944 - estebank:unclosed-delim-the-quickening, r=oli-obk
...
Deduplicate mismatched delimiter errors
Delay unmatched delimiter errors until after the parser has run to deduplicate them when parsing and attempt recovering intelligently.
Second attempt at #54029 , follow up to #53949 . Fix #31528 .
2019-02-09 20:15:57 +00:00
Matthew Jasper
0a16b8754a
Use ? in librustc macros
2019-02-09 16:29:31 +00:00
ljedrz
eb669b3a83
cleanup: remove hir_path_str
2019-02-09 16:37:17 +01:00
ljedrz
3a1a704903
cleanup: rename node_id_to_type(_opt)
2019-02-09 16:37:15 +01:00
bors
4c9233cdeb
Auto merge of #57885 - arielb1:xform-probe, r=nikomatsakis
...
Avoid committing to autoderef in object method probing
This fixes the "leak" introduced in #57835 (see test for details, also apparently #54252 had no tests for the "leaks" that were fixed in it, so go ahead and add one).
Maybe beta-nominating because regression, but I'm against landing things on beta we don't have to.
r? @nikomatsakis
2019-02-09 15:11:43 +00:00
Harald Hoyer
f06af1ff17
impl iter_sources() and iter_chain() for dyn Error
...
Examples:
```rust
let next_error_type_a = err
.iter_chain()
.filter_map(Error::downcast_ref::<ErrorTypeA>)
.next();
```
```rust
let source_root_error = err.iter_chain().last();
```
Credit for the ErrorIter goes to Tim Diekmann
https://www.reddit.com/r/rust/comments/aj3lpg/is_an_iterator_impl_over_errorsource_possible/
2019-02-09 16:04:25 +01:00
Ralf Jung
66adf52e7d
miri: give non-generic functions a stable address
2019-02-09 15:44:54 +01:00
Taiki Endo
be71fccf11
librustc_codegen_ssa => 2018
2019-02-09 23:31:47 +09:00
bors
d329d46a3f
Auto merge of #58207 - nnethercote:intern_lazy_const, r=oli-obk
...
Make `intern_lazy_const` actually intern its argument.
Currently it just unconditionally allocates it in the arena.
For a "Clean Check" build of the the `packed-simd` benchmark, this
change reduces both the `max-rss` and `faults` counts by 59%; it
slightly (~3%) increases the instruction counts but the `wall-time` is
unchanged.
For the same builds of a few other benchmarks, `max-rss` and `faults`
drop by 1--5%, but instruction counts and `wall-time` changes are in the
noise.
Fixes #57432 , fixes #57829 .
2019-02-09 12:38:51 +00:00
Ralf Jung
544b3a1bb4
fix rebase fallout
2019-02-09 12:19:04 +01:00
Ralf Jung
a413242efe
fix printing closures
2019-02-09 12:11:13 +01:00
Ralf Jung
84d75dbd7e
fix node classification
2019-02-09 12:11:12 +01:00
Ralf Jung
27ce224a8f
fix --emit=mir: StructCtors are functions
2019-02-09 12:11:12 +01:00
Ralf Jung
fed4c5d9e1
disambiguate filenames of multiple drop shims being dumped
2019-02-09 12:11:12 +01:00
Ralf Jung
2708946787
pass full InstanceDef to run_passes
2019-02-09 12:11:12 +01:00
Ralf Jung
cd2169682e
fix rebase fallout: AnonConsts are Consts, and Methods are functions
2019-02-09 12:11:12 +01:00
Ralf Jung
276219e0e2
fix dumping MIR from another crate
2019-02-09 12:11:12 +01:00
Ralf Jung
f5bbcf3818
use pass infrastructure for mir shims, so that they can get dumped
2019-02-09 12:08:39 +01:00
bors
618f5a08a1
Auto merge of #57617 - mark-i-m:multiple-matcher-bindings, r=petrochenkov
...
Error on duplicate matcher bindings
fix #57593
This should not be merged without a crater run and maybe an FCP. Discussion is ongoing at #57593 .
TODO:
- [x] write tests
- [x] crater run
- [x] ~maybe need edition gating?~ not for 1 regression /centril
r? @petrochenkov
2019-02-09 09:48:41 +00:00
Taiki Endo
06b63046b2
Cleanup imports
2019-02-09 17:13:39 +09:00
Taiki Endo
360e65db7a
Move some tests into the tests directory
...
This moves tests in opaque.rs and tests other than tests that require
private items in json.rs into tests/opaque.rs and tests/json.rs.
2019-02-09 17:12:04 +09:00
Robert Hayek
caf7126ee8
Some writing improvement, conciseness of intro
2019-02-09 00:46:27 -05:00
bors
312f3827fa
Auto merge of #57184 - varkor:deny-warnings-lib, r=Mark-Simulacrum
...
Deny warnings in libcore and libstd
This probably fixes https://github.com/rust-lang/rust/issues/57178 (though there may still be some crates that need warnings denied). At least after this change, rustc currently produces no warnings during compilation.
r? @oli-obk
2019-02-09 03:54:31 +00:00
bors
cb6fafbdf3
Auto merge of #58316 - Centril:rollup, r=Centril
...
Rollup of 18 pull requests
Successful merges:
- #58091 (Transition compiletest to Rust 2018)
- #58115 (Transition rustdoc to 2018 edition)
- #58120 (Transition build_helper to 2018 edition)
- #58222 (librustc_allocator => 2018)
- #58233 (librustc_save_analysis => 2018)
- #58245 (librustc_lint => 2018)
- #58247 (librustc_passes => 2018)
- #58251 (Transition librustc_traits to 2018 edition)
- #58255 (librustc_metadata => 2018)
- #58256 (librustc_cratesio_shim => 2018)
- #58257 (librustc_target => 2018)
- #58259 (librustc_codegen_utils => 2018)
- #58260 (librustc_borrowck => 2018)
- #58261 (librustc_incremental => 2018)
- #58265 (librustc_mir => 2018)
- #58275 (libcore, liballoc: disable tests in Miri)
- #58285 (error_index_generator => 2018)
- #58312 (librustc_data_structures => 2018)
Failed merges:
r? @ghost
2019-02-09 01:04:13 +00:00
Mazdak Farrokhzad
068a926622
Rollup merge of #58312 - taiki-e:librustc_data_structures-2018, r=Centril
...
librustc_data_structures => 2018
Transitions `librustc_data_structures` to Rust 2018; cc #58099
r? @Centril
2019-02-09 00:16:06 +01:00
Mazdak Farrokhzad
5e208f6982
Rollup merge of #58285 - taiki-e:error_index_generator-2018, r=Centril
...
error_index_generator => 2018
Transitions `error_index_generator` to Rust 2018; cc #58099
r? @Centril
2019-02-09 00:16:05 +01:00
Mazdak Farrokhzad
9708644530
Rollup merge of #58275 - RalfJung:miri-test-libcore, r=Mark-Simulacrum
...
libcore, liballoc: disable tests in Miri
I am going to run the libcore and liballoc unit test suites in Miri. Not all tests pass. This PR disables a whole bunch of tests when running in Miri, to get us to a baseline from which I can investigate failures.
Cc @SimonSapin @alexcrichton
2019-02-09 00:16:04 +01:00
Mazdak Farrokhzad
c3b4102e2f
Rollup merge of #58265 - taiki-e:librustc_mir-2018, r=matthewjasper
...
librustc_mir => 2018
Transitions `librustc_mir` to Rust 2018; cc #58099
TODO: ~~elided_lifetimes_in_paths~~
r? @Centril
2019-02-09 00:16:03 +01:00
Mazdak Farrokhzad
4476e4fd36
Rollup merge of #58261 - taiki-e:librustc_incremental-2018, r=Centril
...
librustc_incremental => 2018
Transitions `librustc_incremental` to Rust 2018; cc #58099
r? @Centril
2019-02-09 00:16:02 +01:00
Mazdak Farrokhzad
c3d365f460
Rollup merge of #58260 - taiki-e:librustc_borrowck-2018, r=Centril
...
librustc_borrowck => 2018
Transitions `librustc_borrowck` to Rust 2018; cc #58099
r? @Centril
2019-02-09 00:16:01 +01:00
Mazdak Farrokhzad
d7a4dd1074
Rollup merge of #58259 - taiki-e:librustc_codegen_utils-2018, r=Centril
...
librustc_codegen_utils => 2018
Transitions `librustc_codegen_utils` to Rust 2018; cc #58099
r? @Centril
2019-02-09 00:15:59 +01:00
Mazdak Farrokhzad
869135ceda
Rollup merge of #58257 - taiki-e:librustc_target-2018, r=Centril
...
librustc_target => 2018
Transitions `librustc_target` to Rust 2018; cc #58099
r? @Centril
2019-02-09 00:15:58 +01:00
Mazdak Farrokhzad
21509b81fa
Rollup merge of #58256 - taiki-e:librustc_cratesio_shim-2018, r=Centril
...
librustc_cratesio_shim => 2018
Transitions `librustc_cratesio_shim` to Rust 2018; cc #58099
r? @Centril
2019-02-09 00:15:57 +01:00
Mazdak Farrokhzad
8cbee1c68e
Rollup merge of #58255 - taiki-e:librustc_metadata-2018, r=Centril
...
librustc_metadata => 2018
Transitions `librustc_metadata` to Rust 2018; cc #58099
r? @Centril
2019-02-09 00:15:55 +01:00
Mazdak Farrokhzad
379a048bbb
Rollup merge of #58251 - h-michael:librustc_traits-2018, r=Centril
...
Transition librustc_traits to 2018 edition
Transitions librustc_traits to Rust 2018; cc #58099
r? @Centril
2019-02-09 00:15:54 +01:00
Mazdak Farrokhzad
50df4d188f
Rollup merge of #58247 - taiki-e:librustc_passes-2018, r=Centril
...
librustc_passes => 2018
Transitions `librustc_passes` to Rust 2018; cc #58099
r? @Centril
2019-02-09 00:15:53 +01:00
Mazdak Farrokhzad
543f457169
Rollup merge of #58245 - taiki-e:librustc_lint-2018, r=Centril
...
librustc_lint => 2018
Transitions `librustc_lint` to Rust 2018; cc #58099
r? @Centril
2019-02-09 00:15:52 +01:00
Mazdak Farrokhzad
2b8ed1e1bd
Rollup merge of #58233 - taiki-e:librustc_save_analysis-2018, r=Centril
...
librustc_save_analysis => 2018
Transitions `librustc_save_analysis` to Rust 2018; cc #58099
r? @Centril
2019-02-09 00:15:50 +01:00
Mazdak Farrokhzad
5b4cf9b90d
Rollup merge of #58222 - taiki-e:librustc_allocator-2018, r=Centril
...
librustc_allocator => 2018
Transitions `librustc_allocator` to Rust 2018; cc #58099
r? @Centril
2019-02-09 00:15:49 +01:00
Mazdak Farrokhzad
6f5941e113
Rollup merge of #58120 - h-michael:build_helper-theme-2018, r=Centril
...
Transition build_helper to 2018 edition
Transitions build_helper to Rust 2018; cc #58099
r? @Centril
2019-02-09 00:15:48 +01:00
Mazdak Farrokhzad
f674779012
Rollup merge of #58115 - h-michael:rustdoc-2018, r=Centril
...
Transition rustdoc to 2018 edition
Transitions rustdoc to Rust 2018; cc #58099
2019-02-09 00:15:46 +01:00