Skip to content

rustc::middle::dataflow - visit the CFG in RPO #43713

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

Merged
merged 1 commit into from
Aug 7, 2017

Conversation

arielb1
Copy link
Contributor

@arielb1 arielb1 commented Aug 7, 2017

We used to propagate bits in node-id order, which sometimes caused an
excessive number of iterations, especially when macros were present. As
everyone knows, visiting the CFG in RPO bounds the number of iterators
by 1 plus the depth of the most deeply nested loop (times the height of
the lattice, which is 1).

I have no idea how this affects borrowck perf in the non-worst-case, so it's probably a good idea to not roll this up so we can see the effects.

Fixes #43704.

r? @eddyb

We used to propagate bits in node-id order, which sometimes caused an
excessive number of iterations, especially when macros were present. As
everyone knows, visiting the CFG in RPO bounds the number of iterators
by 1 plus the depth of the most deeply nested loop (times the height of
the lattice, which is 1).

Fixes rust-lang#43704.
@eddyb
Copy link
Member

eddyb commented Aug 7, 2017

@bors r+

@bors
Copy link
Collaborator

bors commented Aug 7, 2017

📌 Commit 4e3a0b6 has been approved by eddyb

@bors
Copy link
Collaborator

bors commented Aug 7, 2017

⌛ Testing commit 4e3a0b6 with merge 2bb6d3d...

bors added a commit that referenced this pull request Aug 7, 2017
rustc::middle::dataflow - visit the CFG in RPO

We used to propagate bits in node-id order, which sometimes caused an
excessive number of iterations, especially when macros were present. As
everyone knows, visiting the CFG in RPO bounds the number of iterators
by 1 plus the depth of the most deeply nested loop (times the height of
the lattice, which is 1).

I have no idea how this affects borrowck perf in the non-worst-case, so it's probably a good idea to not roll this up so we can see the effects.

Fixes #43704.

r? @eddyb
@bors
Copy link
Collaborator

bors commented Aug 7, 2017

☀️ Test successful - status-appveyor, status-travis
Approved by: eddyb
Pushing 2bb6d3d to master...

@bors bors merged commit 4e3a0b6 into rust-lang:master Aug 7, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants