diff options
| author | bors <bors@rust-lang.org> | 2017-09-24 03:55:23 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-09-24 03:55:23 +0000 |
| commit | acb73dbe8b311eb2ffa640ac3e01795d84159df4 (patch) | |
| tree | f64130db8a8c834675fa514bd978d314e4c9f494 /src/test | |
| parent | 24831c7221c7b4e32a02f8e8cffe7dfacb88b520 (diff) | |
| parent | 89aec1eb0bbae38123ffb3e41dc9c2af62527e14 (diff) | |
Auto merge of #44772 - michaelwoerister:new-graph, r=nikomatsakis
incr.comp.: Add new DepGraph implementation. This commits does a few things: 1. It adds the new dep-graph implementation -- *in addition* to the old one. This way we can start testing the new implementation without switching all tests at once. 2. It persists the new dep-graph (which includes query result fingerprints) to the incr. comp. caching directory and also loads this data. 3. It removes support for loading fingerprints of metadata imported from other crates (except for when running autotests). This is not needed anymore with red/green. It could provide a performance advantage but that's yet to be determined. For now, as red/green is not fully implemented yet, the cross-crate incremental tests are disabled. Note, this PR is based on top of soon-to-be-merged #44696 and only the last 4 commits are new: ``` - incr.comp.: Initial implemenation of append-only dep-graph. (c90147c) - incr.comp.: Do some various cleanup. (8ce20c5) - incr.comp.: Serialize and deserialize new DepGraph. (0e13c1a) - incr.comp.: Remove support for loading metadata fingerprints. (270a134) EDIT 2: - incr.comp.: Make #[rustc_dirty/clean] test for fingerprint equality ... (d8f7ff9) ``` (EDIT: GH displays the commits in the wrong order for some reason) Also note that this PR is expected to certainly result in performance regressions in the incr. comp. test cases, since we are adding quite a few things (a whole additional dep-graph, for example) without removing anything. End-to-end performance measurements will only make sense again after red/green is enabled and all the legacy tracking has been turned off. EDIT 2: Pushed another commit that makes the `#[rustc_dirty]`/`#[rustc_clean]` based autotests compared query result fingerprints instead of testing `DepNode` existence.
Diffstat (limited to 'src/test')
9 files changed, 19 insertions, 4 deletions
diff --git a/src/test/incremental/callee_caller_cross_crate/b.rs b/src/test/incremental/callee_caller_cross_crate/b.rs index 9e56d34636f..355983e9ca1 100644 --- a/src/test/incremental/callee_caller_cross_crate/b.rs +++ b/src/test/incremental/callee_caller_cross_crate/b.rs @@ -12,6 +12,8 @@ // revisions:rpass1 rpass2 // compile-flags:-Z query-dep-graph +// ignore-test -- ignored until red/green restores cross-crate tracking fidelity + #![feature(rustc_attrs)] extern crate a; diff --git a/src/test/incremental/change_private_fn_cc/struct_point.rs b/src/test/incremental/change_private_fn_cc/struct_point.rs index a6d029515d7..d58a9bacdb5 100644 --- a/src/test/incremental/change_private_fn_cc/struct_point.rs +++ b/src/test/incremental/change_private_fn_cc/struct_point.rs @@ -15,6 +15,8 @@ // compile-flags: -Z query-dep-graph // aux-build:point.rs +// ignore-test -- ignored until red/green restores cross-crate tracking fidelity + #![feature(rustc_attrs)] #![feature(stmt_expr_attributes)] #![allow(dead_code)] diff --git a/src/test/incremental/change_private_impl_method_cc/struct_point.rs b/src/test/incremental/change_private_impl_method_cc/struct_point.rs index 05c076b9f4b..3f665f5c820 100644 --- a/src/test/incremental/change_private_impl_method_cc/struct_point.rs +++ b/src/test/incremental/change_private_impl_method_cc/struct_point.rs @@ -15,6 +15,8 @@ // compile-flags: -Z query-dep-graph // aux-build:point.rs +// ignore-test -- ignored until red/green restores cross-crate tracking fidelity + #![feature(rustc_attrs)] #![feature(stmt_expr_attributes)] #![allow(dead_code)] diff --git a/src/test/incremental/dirty_clean.rs b/src/test/incremental/dirty_clean.rs index b828cc9c70a..6d54cf53660 100644 --- a/src/test/incremental/dirty_clean.rs +++ b/src/test/incremental/dirty_clean.rs @@ -37,7 +37,7 @@ mod y { #[rustc_clean(label="TypeckTables", cfg="cfail2")] pub fn y() { - //[cfail2]~^ ERROR `TypeckTables(y::y)` not found in dep graph, but should be clean + //[cfail2]~^ ERROR `TypeckTables(y::y)` should be clean but is not x::x(); } } @@ -45,6 +45,6 @@ mod y { mod z { #[rustc_dirty(label="TypeckTables", cfg="cfail2")] pub fn z() { - //[cfail2]~^ ERROR `TypeckTables(z::z)` found in dep graph, but should be dirty + //[cfail2]~^ ERROR `TypeckTables(z::z)` should be dirty but is not } } diff --git a/src/test/incremental/hashes/enum_defs.rs b/src/test/incremental/hashes/enum_defs.rs index 0f734683b60..8f84266d5a4 100644 --- a/src/test/incremental/hashes/enum_defs.rs +++ b/src/test/incremental/hashes/enum_defs.rs @@ -143,7 +143,7 @@ enum EnumChangeValueCStyleVariant1 { #[cfg(not(cfail1))] #[rustc_dirty(label="Hir", cfg="cfail2")] #[rustc_clean(label="Hir", cfg="cfail3")] -#[rustc_clean(label="HirBody", cfg="cfail2")] +#[rustc_dirty(label="HirBody", cfg="cfail2")] #[rustc_clean(label="HirBody", cfg="cfail3")] #[rustc_metadata_dirty(cfg="cfail2")] #[rustc_metadata_clean(cfg="cfail3")] diff --git a/src/test/incremental/rlib_cross_crate/b.rs b/src/test/incremental/rlib_cross_crate/b.rs index 9849e93d3ff..39065d9671a 100644 --- a/src/test/incremental/rlib_cross_crate/b.rs +++ b/src/test/incremental/rlib_cross_crate/b.rs @@ -18,6 +18,8 @@ // no-prefer-dynamic // compile-flags: -Z query-dep-graph +// ignore-test -- ignored until red/green restores cross-crate tracking fidelity + #![feature(rustc_attrs)] extern crate a; diff --git a/src/test/incremental/string_constant.rs b/src/test/incremental/string_constant.rs index 36a26cf1755..760975b292f 100644 --- a/src/test/incremental/string_constant.rs +++ b/src/test/incremental/string_constant.rs @@ -27,7 +27,8 @@ mod x { } #[cfg(rpass2)] - #[rustc_dirty(label="TypeckTables", cfg="rpass2")] + #[rustc_dirty(label="HirBody", cfg="rpass2")] + #[rustc_dirty(label="MirOptimized", cfg="rpass2")] pub fn x() { println!("{}", "2"); } @@ -37,6 +38,7 @@ mod y { use x; #[rustc_clean(label="TypeckTables", cfg="rpass2")] + #[rustc_clean(label="MirOptimized", cfg="rpass2")] pub fn y() { x::x(); } @@ -46,6 +48,7 @@ mod z { use y; #[rustc_clean(label="TypeckTables", cfg="rpass2")] + #[rustc_clean(label="MirOptimized", cfg="rpass2")] pub fn z() { y::y(); } diff --git a/src/test/incremental/struct_change_field_type_cross_crate/b.rs b/src/test/incremental/struct_change_field_type_cross_crate/b.rs index 9660f47da35..e5ec9784847 100644 --- a/src/test/incremental/struct_change_field_type_cross_crate/b.rs +++ b/src/test/incremental/struct_change_field_type_cross_crate/b.rs @@ -12,6 +12,8 @@ // revisions:rpass1 rpass2 // compile-flags: -Z query-dep-graph +// ignore-test -- ignored until red/green restores cross-crate tracking fidelity + #![feature(rustc_attrs)] extern crate a; diff --git a/src/test/incremental/type_alias_cross_crate/b.rs b/src/test/incremental/type_alias_cross_crate/b.rs index ee35a4d9b9c..63e1437f068 100644 --- a/src/test/incremental/type_alias_cross_crate/b.rs +++ b/src/test/incremental/type_alias_cross_crate/b.rs @@ -12,6 +12,8 @@ // revisions:rpass1 rpass2 rpass3 // compile-flags: -Z query-dep-graph +// ignore-test -- ignored until red/green restores cross-crate tracking fidelity + #![feature(rustc_attrs)] extern crate a; |
