-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Rollup of 8 pull requests #62253
Rollup of 8 pull requests #62253
Commits on Jun 27, 2019
-
Configuration menu - View commit details
-
Copy full SHA for e991abd - Browse repository at this point
Copy the full SHA e991abdView commit details -
Use a more efficient iteration order for forward dataflow
Currently, dataflow begins by visiting each block in order of ID (`BasicBlock(0)`, `BasicBlock(1)`, etc.). This PR changes that initial iteration to reverse post-order. This ensures that the effects of all predecessors will be applied before a basic block is visited if the CFG has no back-edges, and should result in less total iterations even when back-edges exist. This should not change the results of dataflow analysis. The current ordering for basic blocks is pretty close to RPO already--`BasicBlock(0)` is already the start block, so the gains from this are pretty small, especially since we need to do an extra traversal up front. Note that some basic blocks are unreachable from the `START_BLOCK` during dataflow. We add these blocks to the work queue as well to preserve the original behavior.
Configuration menu - View commit details
-
Copy full SHA for 07c5e2b - Browse repository at this point
Copy the full SHA 07c5e2bView commit details -
Use more efficient iteration order for backward dataflow
This applies the same basic principle as rust-lang#62062 to the reverse dataflow analysis used to compute liveness information. It is functionally equivalent, except that post-order is used instead of reverse post-order. Some `mir::Body`s contain basic blocks which are not reachable from the `START_BLOCK`. We need to add them to the work queue as well to preserve the original semantics.
Configuration menu - View commit details
-
Copy full SHA for e2479e2 - Browse repository at this point
Copy the full SHA e2479e2View commit details
Commits on Jun 29, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 47551b1 - Browse repository at this point
Copy the full SHA 47551b1View commit details -
lcolaholicl committed
Jun 29, 2019 Configuration menu - View commit details
-
Copy full SHA for 1fd64cf - Browse repository at this point
Copy the full SHA 1fd64cfView commit details -
Configuration menu - View commit details
-
Copy full SHA for ce1d95a - Browse repository at this point
Copy the full SHA ce1d95aView commit details
Commits on Jun 30, 2019
-
Configuration menu - View commit details
-
Copy full SHA for c0fb347 - Browse repository at this point
Copy the full SHA c0fb347View commit details -
Configuration menu - View commit details
-
Copy full SHA for b613ef1 - Browse repository at this point
Copy the full SHA b613ef1View commit details -
Configuration menu - View commit details
-
Copy full SHA for d066f19 - Browse repository at this point
Copy the full SHA d066f19View commit details -
Configuration menu - View commit details
-
Copy full SHA for 75f31e7 - Browse repository at this point
Copy the full SHA 75f31e7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 400fd60 - Browse repository at this point
Copy the full SHA 400fd60View commit details -
Configuration menu - View commit details
-
Copy full SHA for 76f5b50 - Browse repository at this point
Copy the full SHA 76f5b50View commit details -
Rollup merge of rust-lang#62062 - ecstatic-morse:dataflow-order, r=na…
…gisa Use a more efficient iteration order for forward dataflow Currently, dataflow begins by visiting each block in order of ID (`BasicBlock(0)`, `BasicBlock(1)`, etc.). This PR changes that initial iteration to reverse post-order (see [this blog post](https://eli.thegreenplace.net/2015/directed-graph-traversal-orderings-and-applications-to-data-flow-analysis/#data-flow-analysis) for more info). This ensures that the effects of all predecessors will be applied before a basic block is visited if the CFG has no back-edges, and should result in less total iterations even when back-edges exist. This should not change the results of dataflow analysis. The current ordering for basic blocks may be pretty close to RPO already--`BasicBlock(0)` is already the start block--in which case the cost of doing the traversal up front will outweigh the efficiency gains. A perf run is needed to check this. r? @pnkfelix (I think).
Configuration menu - View commit details
-
Copy full SHA for 543c464 - Browse repository at this point
Copy the full SHA 543c464View commit details -
Rollup merge of rust-lang#62063 - ecstatic-morse:dataflow-backward-or…
…der, r=nagisa Use a more efficient iteration order for backward dataflow This applies the same basic principle as rust-lang#62062 to the reverse dataflow analysis used to compute liveness information. It is functionally equivalent, except that post-order is used instead of reverse post-order. In the long-term, `BitDenotation` should probably be extended to support both forward and backward dataflow, but there's some more work needed to get to that point.
Configuration menu - View commit details
-
Copy full SHA for 70ea57b - Browse repository at this point
Copy the full SHA 70ea57bView commit details -
Rollup merge of rust-lang#62224 - euclio:remove-derives, r=GuillaumeG…
…omez rustdoc: remove unused derives and variants Though many structs in rustdoc derive `RustcEncodable` and `RustcDecodable`, the impls do not appear to be used by the crate or its dependents. Removing them revealed some enum variants that are never constructed, too. r? @GuillaumeGomez
Configuration menu - View commit details
-
Copy full SHA for 1683bb7 - Browse repository at this point
Copy the full SHA 1683bb7View commit details -
Rollup merge of rust-lang#62228 - varkor:must_use-trait-in-box, r=Cen…
…tril Extend the #[must_use] lint to boxed types Fixes rust-lang#55506 (comment) (cc @Nemo157). This should have been included as part of rust-lang#55663, but was overlooked.
Configuration menu - View commit details
-
Copy full SHA for c779f4e - Browse repository at this point
Copy the full SHA c779f4eView commit details -
Rollup merge of rust-lang#62235 - varkor:must_use-adt-components, r=C…
…entril Extend the `#[must_use]` lint to arrays Based on top of rust-lang#62228. r? @Centril
Configuration menu - View commit details
-
Copy full SHA for 2b313b1 - Browse repository at this point
Copy the full SHA 2b313b1View commit details -
Rollup merge of rust-lang#62239 - lcolaholicl:lcolaholicl-patch-1, r=…
…kennytm Fix a typo The definition of 京 seems to be capital, but not capitol. [reference](https://en.wiktionary.org/wiki/%E4%BA%AC#Etymology_1) [another reference](https://jisho.org/word/%E4%BA%AC)
Configuration menu - View commit details
-
Copy full SHA for 690f9e4 - Browse repository at this point
Copy the full SHA 690f9e4View commit details -
Rollup merge of rust-lang#62241 - Centril:fix-async-unsafe-order, r=p…
…etrochenkov Always parse 'async unsafe fn' + properly ban in 2015 Parse `async unsafe fn` not `unsafe async fn` in implementations. We also take the opportunity to properly ban `async fn` in Rust 2015 when they are inside implementations. Closes rust-lang#62232. cc rust-lang#61319, rust-lang#62121, and rust-lang#62149. r? @petrochenkov
Configuration menu - View commit details
-
Copy full SHA for 43eba5f - Browse repository at this point
Copy the full SHA 43eba5fView commit details -
Rollup merge of rust-lang#62248 - RalfJung:release-notes, r=Mark-Simu…
…lacrum before_exec actually will only get deprecated with 1.37 Not sure if we usually fix old release notes, but I just found this when scrolling over them.
Configuration menu - View commit details
-
Copy full SHA for 1abbf4b - Browse repository at this point
Copy the full SHA 1abbf4bView commit details