Skip to content

incr.comp.: Load dep-graph in the background #46555

Closed
@michaelwoerister

Description

@michaelwoerister

The dependency graph is loaded at the earliest point possibly during the compilation session (after the crate disambiguator has been set):

let dep_graph = if sess.opts.build_dep_graph() {

However, it is only needed for the first time a few passes later:

let hir_crate = lower_crate(sess, cstore, &dep_graph, &krate, &mut resolver);

This was intentional so that we have to possibility to load and decode it the graph on a background thread. One way to implement this is to make rustc_incremental::load_dep_graph() start a new thread and return the thread::JoinHandle and then only join that thread right before the dep-graph is actually needed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-incr-compArea: Incremental compilationC-enhancementCategory: An issue proposing an enhancement or a PR with one.WG-incr-compWorking group: Incremental compilation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions