about summary refs log tree commit diff
path: root/src/librustc/dep_graph
AgeCommit message (Collapse)AuthorLines
2017-11-10incr.comp.: Don't crash in DepGraph::try_mark_green() when encountering a ↵Michael Woerister-4/+12
removed input node.
2017-11-10Auto merge of #45785 - arielb1:unsafe-fixes, r=eddybbors-2/+2
fixes to MIR effectck r? @eddyb beta-nominating because regression (MIR effectck is new)
2017-11-08Auto merge of #45867 - michaelwoerister:check-ich-stability, r=nikomatsakisbors-107/+109
incr.comp.: Verify stability of incr. comp. hashes and clean up various other things. The main contribution of this PR is that it adds the `-Z incremental-verify-ich` functionality. Normally, when the red-green tracking system determines that a certain query result has not changed, it does not re-compute the incr. comp. hash (ICH) for that query result because that hash is already known. `-Z incremental-verify-ich` tells the compiler to re-hash the query result and compare the new hash against the cached hash. This is a rather thorough way of - testing hashing implementation stability, - finding missing `[input]` annotations on `DepNodes`, and - finding missing read-edges, since both a missed read and a missing `[input]` annotation can lead to something being marked as green instead of red and thus will have a different hash than it should have. Case in point, implementing this verification logic and activating it for all `src/test/incremental` tests has revealed several such oversights, all of which are fixed in this PR. r? @nikomatsakis
2017-11-08incr.comp.: Remove unused DepKind::WorkProduct.Michael Woerister-11/+0
2017-11-08incr.comp.: Remove outdated comment about TraitSelect dep-node.Michael Woerister-25/+0
2017-11-08incr.comp.: Make DefSpan an input dep-node so it is not affected by the ↵Michael Woerister-1/+10
existing Span/HIR hashing hack.
2017-11-07incr.comp.: Make assertion in try_mark_green() more targeted.Michael Woerister-4/+14
2017-11-07incr.comp.: Mark more input nodes as inputs.Michael Woerister-18/+18
2017-11-07incr.comp.: Allow for forcing input nodes lazily.Michael Woerister-51/+70
2017-11-07incr.comp.: Improve error message for unknown fingerprint.Michael Woerister-1/+6
2017-11-06collect unused unsafe codeAriel Ben-Yehuda-1/+1
FIXME: de-uglify
2017-11-06run unsafety checking before dead block collectionAriel Ben-Yehuda-1/+1
Fixes #45087.
2017-11-04Make DepNodeIndex use newtype_index macroSantiago Pastorino-17/+2
2017-11-03[Syntax Breaking] Rename DefaultImpl to AutoImplleonardo.yvens-1/+1
DefaultImpl is a highly confusing name for what we now call auto impls, as in `impl Send for ..`. The name auto impl is not formally decided but for sanity anything is better than `DefaultImpl` which refers neither to `default impl` nor to `impl Default`.
2017-11-01Auto merge of #45472 - michaelwoerister:incr-comp-caching-base, r=nikomatsakisbors-1/+20
incr.comp.: Implement compiler diagnostic persistence. This PR implements storing and loading diagnostics that the compiler generates and thus allows for emitting warnings during incremental compilation without actually re-evaluating the thing the warning originally came from. It also lays some groundwork for storing and loading type information and MIR in the incr. comp. cache. ~~It is still work in progress:~~ - ~~There's still some documentation to be added.~~ - ~~The way anonymous queries are handled might lead to duplicated emissions of warnings. Not sure if there is a better way or how frequent such duplication would be in practice.~~ Diagnostic message duplication is addressed separately in #45519. r? @nikomatsakis
2017-10-27Auto merge of #45353 - wesleywiser:untracked_queries, r=michaelwoeristerbors-10/+82
[incremental] Add support for eval always queries Part of #45238
2017-10-26Switch several crate-wide queries to use eval_alwaysWesley Wiser-7/+7
Closes #45238
2017-10-26Allow declaring a DepNode as eval_alwaysWesley Wiser-0/+18
Part of #45238
2017-10-26[incremental] Add support for eval always queriesWesley Wiser-3/+57
Part of #45238
2017-10-25incr.comp.: Implement query diagnostic persistence.Michael Woerister-1/+20
2017-10-24Auto merge of #45350 - cjkenn:cjkenn/used-trait-imports, r=nikomatsakisbors-0/+1
Put used trait imports field into a distinct query Implementation for #45214 r+ @nikomatsakis
2017-10-24Auto merge of #44984 - Maaarcocr:master, r=nikomatsakisbors-1/+1
Create NormalizeTy query As part of the effort to solve #44891, I've created the normalize_ty query. As outlined in the issue this meant: - renamed `normalize_associated_type()` to `normalize_associated_type_in()` - created the `normalize_ty` query - substituted the use of memoize with the query This PR is not ready. While running tests, one of the incremental ones failed. [This](https://pastebin.com/vGhH6bv6) is the error I got.
2017-10-21anon NormalizeTy DepNodeMarco Concetto Rudilosso-1/+1
2017-10-21moved depnodeMarco Concetto Rudilosso-2/+1
2017-10-21Create NormalizeTy queryMarco Concetto Rudilosso-0/+1
2017-10-21rustc: Move bytecode compression into codegenAlex Crichton-2/+9
This commit moves compression of the bytecode from the `link` module to the `write` module, namely allowing it to be (a) cached by incremental compilation and (b) produced in parallel. The parallelization may show up as some nice wins during normal compilation and the caching in incremental mode should be beneficial for incremental compiles! (no more need to recompress the entire crate's bitcode on all builds)
2017-10-19Add used_trait_imports querycjkenn-0/+1
2017-10-18make `erase_regions_ty` query anonymousNiko Matsakis-1/+8
2017-10-18Auto merge of #44501 - nikomatsakis:issue-44137-non-query-data-in-tcx, r=eddybbors-0/+2
remove or encapsulate the remaining non-query data in tcx I wound up removing the existing cache around inhabitedness since it didn't seem to be adding much value. I reworked const rvalue promotion, but not that much (i.e., I did not split the computation into bits, as @eddyb had tossed out as a suggestion). But it's now demand driven, at least. cc @michaelwoerister -- see the `forbid_reads` change in last commit r? @eddyb -- since the trickiest of this PR is the work on const rvalue promotion cc #44137
2017-10-17make `erase_regions` use a query instead of an ad-hoc cacheNiko Matsakis-0/+1
2017-10-16convert constant promotion into a queryNiko Matsakis-0/+1
2017-10-16add a new dep node for outlivestoidiu-0/+1
2017-10-14Auto merge of #45137 - theotherjimmy:vtable-methods-query, r=nikomatsakisbors-0/+1
Queryify Vtable methods This query might come with a downside: It converts an iterator to a Vec, which may increase the working set of rustc on programs that use many many traits (I think that's where this is used).
2017-10-14Auto merge of #45104 - vitiral:incr_auto_assert2, r=michaelwoeristerbors-1/+1
Incremental compilation auto assert (with except) cc @michaelwoerister bors merged part 1, so this is a WIP of part 2 of #45009 -- auto asserting DepNodes depending on the type of node rustc_clean/dirty is attached to Framework: - [x] finish auto-detection for specified DepNodes - [x] finish auto-detection for remaining DepNodes Test Refactors: - [x] consts.rs - [x] enum_constructors.rs - [x] extern_mods.rs - [x] inherent_impls.rs - [x] statics.rs - [x] struct_constructors.rs - ~~**BLOCKED** trait_defs.rs, see FIXME~~ - ~~**BLOCKED** trait_impls.rs~~ - [x] type_defs.rs - [x] enum_defs.rs
2017-10-13get_vtable_methods => vtable_methods queryJimmy Brisson-0/+1
2017-10-12incr comp: rustc_clean/dirty auto assertGarrett Berg-1/+1
This adds auto-assertion to `rustc_clean/dirty` and also implements more comprehensive testing for - src/test/incremental/hashes/enum_constructors.rs - src/test/incremental/hashes/enum_defs.rs - src/test/incremental/hashes/extern_mods.rs - src/test/incremental/hashes/inherent_impls.rs - src/test/incremental/hashes/statics.rs - src/test/incremental/hashes/struct_constructors.rs - src/test/incremental/hashes/type_defs.rs trait_defs.rs and trait_impl.rs are blocked on a hard to triage compiler ICE (at least hard for a newbie like me) having to do with some DepNodes not getting computed for traits. A FIXME has been added in the source to reflect this continued work.
2017-10-12Auto merge of #44967 - wesleywiser:trans_fulfill_obligation, r=nikomatsakisbors-1/+2
Turn `trans_fulfill_obligation` into a query Part of #44891
2017-10-08Turn `trans_fulfill_obligation` into a queryWesley Wiser-1/+2
Part of #44891
2017-10-08Auto merge of #45100 - kennytm:rollup, r=kennytmbors-4/+4
Rollup of 10 pull requests - Successful merges: #45018, #45042, #45052, #45053, #45058, #45060, #45081, #45083, #45090, #45094 - Failed merges:
2017-10-08Rollup merge of #45018 - michaelwoerister:fix-dep-node-debug-recursion, r=eddybkennytm-4/+4
incr.comp.: Fix infinite recursion in Debug implementation of DepNode Small bug fix. Depends on #44901 to land first.
2017-10-08Auto merge of #44983 - vitiral:dirty_clean_groups, r=michaelwoeristerbors-0/+19
groundwork for rustc_clean/dirty improvements This is a WIP PR that needs mentoring from @michaelwoerister. There are several TODOs but no outstanding questions (except for the main one -- **is this the right approach?**) This is the plumbing for supporing groups in `rustc_clean(labels="...")`, as well as supporting an `except="..."` which will remove the excepted labels in the "clean" check and then assert that they are dirty (this is still TODO). See the code TODO's and example comments for a rough design. I'd like to know if this is the design you would like to do, and then I can go about actually filling out the groups and implementing the remaining logic.
2017-10-05Fix infinite recursion in <DepNode as Debug>.Michael Woerister-4/+4
2017-10-04Generate SerializedDepNodeIndex using newtype_index macroSantiago Pastorino-18/+2
2017-10-04Generate DepNodeIndexNew using newtype_index macroSantiago Pastorino-1/+1
2017-10-04groundwork for #45009: rustc_dirty/clean enhancementsGarrett Berg-0/+19
2017-10-04incr.comp.: Address review comments.Michael Woerister-25/+54
2017-10-02incr.comp.: Do some cleanup.Michael Woerister-1/+4
2017-10-02incr.comp.: Remove legacy dep-graph runtime.Michael Woerister-386/+87
2017-10-02incr.comp.: Remove saving and loading of legacy dep-graph.Michael Woerister-1/+3
2017-10-02incr.comp.: Build DepGraphQuery from new dep-graph impl.Michael Woerister-13/+13