-
Notifications
You must be signed in to change notification settings - Fork 13.4k
incr.comp.: Add new DepGraph implementation. #44772
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
r? @eddyb (rust_highfive has picked a reviewer for you, use r? to override) |
src/librustc/dep_graph/graph.rs
Outdated
data.current.borrow_mut().read(v); | ||
|
||
let mut current = data.current.borrow_mut(); | ||
debug_assert!(current.node_to_node_index.contains_key(&v), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why have both the debug assert and the bug!
?
Also, what is going on here =) -- that is, when exactly are these getting allocated? This is not obvious to me.
OK, I skimmed the commits. It all looks good to me. I left a question of something I don't understand, but r=me (I'm sure you can explain it to me async =) |
Oh, that seems to be an oversight.
Nodes are only allocated via |
☔ The latest upstream changes (presumably #44696) made this pull request unmergeable. Please resolve the merge conflicts. |
…nstead of DepNode existence.
e8eb327
to
89aec1e
Compare
📌 Commit 89aec1e has been approved by |
☀️ Test successful - status-appveyor, status-travis |
This commits does a few things:
Note, this PR is based on top of soon-to-be-merged #44696 and only the last 4 commits are new:
(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 testingDepNode
existence.