about summary refs log tree commit diff
path: root/src/librustc/dep_graph/mod.rs
AgeCommit message (Collapse)AuthorLines
2020-03-30rustc -> rustc_middle part 1Mazdak Farrokhzad-186/+0
2020-03-27Implement HashStable directly.Camille GILLOT-2/+0
2020-03-27Cleanups.Camille GILLOT-5/+5
2020-03-26Retire DepGraphSafe and HashStableContext.Camille GILLOT-17/+0
2020-03-26Rustfmt.Camille GILLOT-1/+5
2020-03-26Generalise Query starting.Camille GILLOT-0/+4
2020-03-26Decouple from DepKind.Camille GILLOT-0/+6
2020-03-23Move import.Camille GILLOT-1/+1
2020-03-23Address review.Camille GILLOT-11/+9
2020-03-23Put extract_def_id back on DepNode.Camille GILLOT-22/+2
2020-03-23Remove assert_ignored and with_ignore_deps.Camille GILLOT-18/+0
2020-03-23Merge ensure_node_can_be_forced into force_from_dep_node.Camille GILLOT-8/+6
2020-03-23Fallout in other crates.Camille GILLOT-0/+233
2020-03-23Move dep_graph to new crate librustc_query_system.Camille GILLOT-17/+0
2020-03-09Remove the need for `no_force`John Kåre Alsaker-1/+2
2019-12-22Format the worldMark Rousskov-2/+2
2019-12-03Move cgu_reuse_tracker to librustc_sessionMark Rousskov-1/+0
2019-09-25Remove unused DepTrackingMapMark Rousskov-2/+0
2019-03-18Define queries using a proc macroJohn Kåre Alsaker-1/+1
2019-02-08Add a query type which is always marked as red if it runsJohn Kåre Alsaker-1/+1
2018-12-31Clean up and optimize OpenTask / read_indexJohn Kåre Alsaker-1/+1
2018-12-25Remove licensesMark Rousskov-10/+0
2018-09-18incr.comp.: Allow for more fine-grained testing of CGU reuse and use it to ↵Michael Woerister-0/+1
test incremental ThinLTO.
2018-04-25Make DepGraph thread-safeJohn Kåre Alsaker-2/+1
2017-10-25incr.comp.: Implement query diagnostic persistence.Michael Woerister-1/+1
2017-10-21rustc: Move bytecode compression into codegenAlex Crichton-0/+1
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-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-02incr.comp.: Remove legacy dep-graph runtime.Michael Woerister-1/+0
2017-10-02incr.comp.: Add minimal version of try_mark_green procedure.Michael Woerister-1/+1
2017-09-23incr.comp.: Serialize and deserialize new DepGraphMichael Woerister-7/+6
2017-09-23incr.comp.: Initial implemenation of append-only dep-graph.Michael Woerister-2/+1
2017-07-10incr.comp.: Cache DepNodes with corresponding query results.Michael Woerister-0/+1
2017-07-10incr.comp.: Manage dependency graph on main thread.Michael Woerister-2/+0
2017-06-09incr.comp.: Uniformly represent DepNodes as (Kind, StableHash) pairs.Michael Woerister-0/+2
2017-06-07Allocate DefIndices for global crate metadata.Michael Woerister-1/+0
This allows for treating global crate metadata the same as regular metadata with regard to incr. comp.
2017-05-08incr.comp.: Hash more pieces of crate metadata to detect changes there.Michael Woerister-0/+1
2017-05-03kill the old `visit_all_item_likes` infrastructureNiko Matsakis-2/+0
2017-05-02introduce `mir_keys()`Niko Matsakis-1/+0
Each MIR key is a DefId that has MIR associated with it
2017-03-10add comments and remove unused code pathsNiko Matsakis-1/+0
2017-03-10isolate dep-graph tasksNiko Matsakis-0/+4
A task function is now given as a `fn` pointer to ensure that it carries no state. Each fn can take two arguments, because that worked out to be convenient -- these two arguments must be of some type that is `DepGraphSafe`, a new trait that is intended to prevent "leaking" information into the task that was derived from tracked state. This intentionally leaves `DepGraph::in_task()`, the more common form, alone. Eventually all uses of `DepGraph::in_task()` should be ported to `with_task()`, but I wanted to start with a smaller subset. Originally I wanted to use closures bound by an auto trait, but that approach has some limitations: - the trait cannot have a `read()` method; since the current method is unused, that may not be a problem. - more importantly, we would want the auto trait to be "undefined" for all types *by default* -- that is, this use case doesn't really fit the typical auto trait scenario. For example, imagine that there is a `u32` loaded out of a `hir::Node` -- we don't really want to be passing that `u32` into the task!
2017-02-28add `visit_all_bodies_in_krate` helperNiko Matsakis-0/+1
2016-11-16refactor Visitor into ItemLikeVisitor and intravisit::VisitorNiko Matsakis-1/+1
There are now three patterns (shallow, deep, and nested visit). These are described in detail on the docs in `itemlikevisit::ItemLikeVisitor`.
2016-09-06implement a debugging "shadow graph"Niko Matsakis-0/+1
The shadow graph supercedes the existing code that checked for reads/writes without an active task and now adds the ability to filter for specific edges.
2016-07-28Extend DepGraph so it can track "work-products"Niko Matsakis-0/+2
A work product right now is just a `.o` file. In the future it probably includes other kinds of files, such as `.bc` files saving the unoptimized LLVM IR. However, because WorkProductIds must be independent of DefIds, so that they don't need translation, this system may not be suitable *as is* for storing fine-grained information (such as the MIR for individual defs), as it was originally intended. We will want to refactor some for that.
2016-05-18cleanup dep-graph debugging codeNiko Matsakis-0/+1
Create some re-usable filtering subroutines.
2016-05-18when encoding, push MetaData(foo) task on stackNiko Matsakis-0/+1
This lets us determine what was used to construct the metadata. Conflicts: src/librustc_metadata/encoder.rs
2016-04-06break dep-graph into modules, parameterize DepNodeNiko Matsakis-200/+6
it is useful later to customize how change the type we use for reference items away from DefId
2016-04-06rustc: move middle::{def,def_id,pat_util} to hir.Eduard Burtescu-1/+1
2016-04-06rustc: move rustc_front to rustc::hir.Eduard Burtescu-2/+2
2016-03-27rustc: move cfg, infer, traits and ty from middle to top-level.Eduard Burtescu-1/+1