-
Notifications
You must be signed in to change notification settings - Fork 12.5k
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 12 pull requests #79037
Rollup of 12 pull requests #79037
Commits on Oct 25, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 3dd0a7d - Browse repository at this point
Copy the full SHA 3dd0a7dView commit details
Commits on Nov 11, 2020
-
Use Places to express closure/generator Captures
Co-authored-by: Archer Zhang <archer.xn@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 127a6ed - Browse repository at this point
Copy the full SHA 127a6edView commit details -
Indroduce feature flag for RFC-2229
Signed-off-by: Aman Arora <me@aman-arora.com>
Configuration menu - View commit details
-
Copy full SHA for 88310cc - Browse repository at this point
Copy the full SHA 88310ccView commit details -
Add initial set of testcases for RFC 2229
Co-authored-by: Dhruv Jauhar <dhruvjhr@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 58e8f8f - Browse repository at this point
Copy the full SHA 58e8f8fView commit details -
Add helper function for Capture Esclations and expressions
Co-authored-by: Dhruv Jauhar <dhruvjhr@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 1453120 - Browse repository at this point
Copy the full SHA 1453120View commit details -
Initial work for doing minimum capture analysis for RFC-2229
Co-authored-by: Chris Pardy <chrispardy36@gmail.com> Co-authored-by: Logan Mosier <logmosier@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for 8f0c0d6 - Browse repository at this point
Copy the full SHA 8f0c0d6View commit details -
Update tests with min capture information
Co-authored-by: Chris Pardy <chrispardy36@gmail.com> Co-authored-by: Logan Mosier <logmosier@gmail.com>
Configuration menu - View commit details
-
Copy full SHA for b16815b - Browse repository at this point
Copy the full SHA b16815bView commit details -
Reduce verbosity of capture analysis logs
Co-authored-by: Jenny Wills <wills.jenniferg@gmail.com> Co-authored-by: Aman Arora <me@aman-arora.com>
Configuration menu - View commit details
-
Copy full SHA for 825e9e4 - Browse repository at this point
Copy the full SHA 825e9e4View commit details -
Configuration menu - View commit details
-
Copy full SHA for fa38160 - Browse repository at this point
Copy the full SHA fa38160View commit details -
Configuration menu - View commit details
-
Copy full SHA for be77402 - Browse repository at this point
Copy the full SHA be77402View commit details -
Configuration menu - View commit details
-
Copy full SHA for abc4004 - Browse repository at this point
Copy the full SHA abc4004View commit details -
Configuration menu - View commit details
-
Copy full SHA for 43423f6 - Browse repository at this point
Copy the full SHA 43423f6View commit details -
Configuration menu - View commit details
-
Copy full SHA for deeb025 - Browse repository at this point
Copy the full SHA deeb025View commit details -
Configuration menu - View commit details
-
Copy full SHA for d0fac05 - Browse repository at this point
Copy the full SHA d0fac05View commit details -
rustc_target: Change os from "unknown" to "none" for bare metal targets
x86_64-fortanix-unknown-sgx and wasm32-unknown-unknown still have os == "unknown" because both have libstd
Configuration menu - View commit details
-
Copy full SHA for 443b45f - Browse repository at this point
Copy the full SHA 443b45fView commit details -
rustc_target: Normalize vendor from "" to "unknown" for all targets
Majority of targets use "unknown" vendor and changing it from "unknown" to omitted doesn't make sense. From the LLVM docs (https://clang.llvm.org/docs/CrossCompilation.html#target-triple): >Most of the time it can be omitted (and Unknown) will be assumed, which sets the defaults for the specified architecture. >When a parameter is not important, it can be omitted, or you can choose unknown and the defaults will be used. If you choose a parameter that Clang doesn’t know, like blerg, it’ll ignore and assume unknown
Configuration menu - View commit details
-
Copy full SHA for 1def24c - Browse repository at this point
Copy the full SHA 1def24cView commit details -
rustc_target: Make sure that in-tree targets follow conventions for o…
…s and vendor values
Configuration menu - View commit details
-
Copy full SHA for e0a8f22 - Browse repository at this point
Copy the full SHA e0a8f22View commit details
Commits on Nov 12, 2020
-
Configuration menu - View commit details
-
Copy full SHA for f5e67b5 - Browse repository at this point
Copy the full SHA f5e67b5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9c70696 - Browse repository at this point
Copy the full SHA 9c70696View commit details -
Added some unit tests as requested
As discussed in PR rust-lang#78267, for example: * rust-lang#78267 (comment) * rust-lang#78267 (comment)
Configuration menu - View commit details
-
Copy full SHA for bd0eb07 - Browse repository at this point
Copy the full SHA bd0eb07View commit details -
Use intradoc-links for the whole test, add a @Has check
Co-authored-by: Joshua Nelson <joshua@yottadb.com>
Configuration menu - View commit details
-
Copy full SHA for ecfeac5 - Browse repository at this point
Copy the full SHA ecfeac5View commit details -
Include llvm-as in llvm-tools-preview component
Including llvm-as adds the ability to include assembly language fragments that can be inlined using LTO.
Configuration menu - View commit details
-
Copy full SHA for 562d50e - Browse repository at this point
Copy the full SHA 562d50eView commit details -
Configuration menu - View commit details
-
Copy full SHA for e4a43fc - Browse repository at this point
Copy the full SHA e4a43fcView commit details -
Overcome Sync issues with non-parallel compiler
Per Mark's recommendation at: rust-lang#78963 (comment)
Configuration menu - View commit details
-
Copy full SHA for eb9f2bb - Browse repository at this point
Copy the full SHA eb9f2bbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 775f1e5 - Browse repository at this point
Copy the full SHA 775f1e5View commit details -
rustc_target: Mark UEFI targets as
is_like_windows
/is_like_msvc
Document what `is_like_windows` and `is_like_msvc` mean in more detail.
Configuration menu - View commit details
-
Copy full SHA for 04d41e1 - Browse repository at this point
Copy the full SHA 04d41e1View commit details -
Never inline when
no_sanitize
attributes differThe inliner looks if a sanitizer is enabled before considering `no_sanitize` attribute as possible source of incompatibility. The MIR inlining could happen in a crate with sanitizer disabled, but code generation in a crate with sanitizer enabled, thus the attribute would be incorrectly ignored. To avoid the issue never inline functions with different `no_sanitize` attributes.
Configuration menu - View commit details
-
Copy full SHA for 0b4af16 - Browse repository at this point
Copy the full SHA 0b4af16View commit details -
The information about cold attribute is lost during inlining, Avoid the issue by never inlining cold functions.
Configuration menu - View commit details
-
Copy full SHA for ae43326 - Browse repository at this point
Copy the full SHA ae43326View commit details -
Remove check for impossible condition
The callee body is already transformed; the condition is always false.
Configuration menu - View commit details
-
Copy full SHA for 9bb3d6b - Browse repository at this point
Copy the full SHA 9bb3d6bView commit details -
rustc_parse: Remove optimization for 0-length streams in `collect_tok…
…ens` The optimization conflates empty token streams with unknown token stream, which is at least suspicious, and doesn't affect performance because 0-length token streams are very rare.
Configuration menu - View commit details
-
Copy full SHA for 2879ab7 - Browse repository at this point
Copy the full SHA 2879ab7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 66cadec - Browse repository at this point
Copy the full SHA 66cadecView commit details -
Configuration menu - View commit details
-
Copy full SHA for 79d853e - Browse repository at this point
Copy the full SHA 79d853eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 2a010dd - Browse repository at this point
Copy the full SHA 2a010ddView commit details -
Normalize function type during validation
During inlining, the callee body is normalized and has types revealed, but some of locals corresponding to the arguments might come from the caller body which is not. As a result the caller body does not pass validation without additional normalization.
Configuration menu - View commit details
-
Copy full SHA for d486bfc - Browse repository at this point
Copy the full SHA d486bfcView commit details -
Configuration menu - View commit details
-
Copy full SHA for 99be78d - Browse repository at this point
Copy the full SHA 99be78dView commit details
Commits on Nov 13, 2020
-
Added a unit test for BcbCounters
Restructured the code a little, to allow getting both the mir::Body and coverage graph.
Configuration menu - View commit details
-
Copy full SHA for c131063 - Browse repository at this point
Copy the full SHA c131063View commit details -
Configuration menu - View commit details
-
Copy full SHA for 309d863 - Browse repository at this point
Copy the full SHA 309d863View commit details -
Configuration menu - View commit details
-
Copy full SHA for b4b0ef3 - Browse repository at this point
Copy the full SHA b4b0ef3View commit details -
Configuration menu - View commit details
-
Copy full SHA for bf6902c - Browse repository at this point
Copy the full SHA bf6902cView commit details -
Configuration menu - View commit details
-
Copy full SHA for c50e57f - Browse repository at this point
Copy the full SHA c50e57fView commit details
Commits on Nov 14, 2020
-
Rollup merge of rust-lang#78352 - JohnTitor:issue-75229, r=Dylan-DPC
Do not call `unwrap` with `signatures` option enabled Fixes rust-lang#75229 Didn't add a test since I couldn't set `RUST_SAVE_ANALYSIS_CONFIG` even with `rustc-env`.
Configuration menu - View commit details
-
Copy full SHA for a5b7f24 - Browse repository at this point
Copy the full SHA a5b7f24View commit details -
Rollup merge of rust-lang#78736 - petrochenkov:lazyenum, r=Aaron1011
rustc_parse: Remove optimization for 0-length streams in `collect_tokens` The optimization conflates empty token streams with unknown token stream, which is at least suspicious, and doesn't affect performance because 0-length token streams are very rare. r? `@Aaron1011`
Configuration menu - View commit details
-
Copy full SHA for 6272915 - Browse repository at this point
Copy the full SHA 6272915View commit details -
Rollup merge of rust-lang#78801 - sexxi-goose:min_capture, r=nikomats…
…akis RFC-2229: Implement Precise Capture Analysis ### This PR introduces - Feature gate for RFC-2229 (incomplete) `capture_disjoint_field` - Rustc Attribute to print out the capture analysis `rustc_capture_analysis` - Precise capture analysis ### Description of the analysis 1. If the feature gate is not set then all variables that are not local to the closure will be added to the list of captures. (This is for backcompat) 2. The rest of the analysis is based entirely on how the captured `Place`s are used within the closure. Precise information (i.e. projections) about the `Place` is maintained throughout. 3. To reduce the amount of information we need to keep track of, we do a minimization step. In this step, we determine a list such that no Place within this list represents an ancestor path to another entry in the list. Check rust-lang/project-rfc-2229#9 for more detailed examples. 4. To keep the compiler functional as before we implement a Bridge between the results of this new analysis to existing data structures used for closure captures. Note the new capture analysis results are only part of MaybeTypeckTables that is the information is only available during typeck-ing. ### Known issues - Statements like `let _ = x` will make the compiler ICE when used within a closure with the feature enabled. More generally speaking the issue is caused by `let` statements that create no bindings and are init'ed using a Place expression. ### Testing We removed the code that would handle the case where the feature gate is not set, to enable the feature as default and did a bors try and perf run. More information here: rust-lang#78762 ### Thanks This has been slowly in the works for a while now. I want to call out `@Azhng` `@ChrisPardy` `@null-sleep` `@jenniferwills` `@logmosier` `@roxelo` for working on this and the previous PRs that led up to this, `@nikomatsakis` for guiding us. Closes rust-lang/project-rfc-2229#7 Closes rust-lang/project-rfc-2229#9 Closes rust-lang/project-rfc-2229#6 Closes rust-lang/project-rfc-2229#19 r? `@nikomatsakis`
Configuration menu - View commit details
-
Copy full SHA for 0c0e8c4 - Browse repository at this point
Copy the full SHA 0c0e8c4View commit details -
Rollup merge of rust-lang#78951 - petrochenkov:unknown, r=ehuss
rustc_target: Change os and vendor values to "none" and "unknown" for some targets Closes rust-lang#77730 r? ```@ehuss```
Configuration menu - View commit details
-
Copy full SHA for d8fcf18 - Browse repository at this point
Copy the full SHA d8fcf18View commit details -
Rollup merge of rust-lang#78959 - petrochenkov:likeuefi, r=nagisa
rustc_target: Mark UEFI targets as `is_like_windows`/`is_like_msvc` And document what `is_like_windows` and `is_like_msvc` actually mean in more detail. Addresses FIXMEs left from rust-lang#71030. r? ```@nagisa```
Configuration menu - View commit details
-
Copy full SHA for e427499 - Browse repository at this point
Copy the full SHA e427499View commit details -
Rollup merge of rust-lang#78962 - poliorcetics:rustdoc-raw-ident-test…
…, r=jyn514 Add a test for r# identifiers I'm not entirely sure I properly ran the test locally (I think so though), waiting for CI to confirm. :) ```@rustbot``` modify labels: T-rustdoc r? ```@jyn514```
Configuration menu - View commit details
-
Copy full SHA for dd9485e - Browse repository at this point
Copy the full SHA dd9485eView commit details -
Rollup merge of rust-lang#78963 - richkadel:llvm-coverage-counters-2.…
…0.4, r=tmandry Added some unit tests as requested As discussed in PR rust-lang#78267, for example: * rust-lang#78267 (comment) * rust-lang#78267 (comment) r? ```@tmandry``` FYI: ```@wesleywiser``` This is pretty much self contained, but depending on feedback and timing, I may have a chance to add a few more unit tests requested against `counters.rs`. I'm looking at those now.
Configuration menu - View commit details
-
Copy full SHA for 09cafd7 - Browse repository at this point
Copy the full SHA 09cafd7View commit details -
Rollup merge of rust-lang#78966 - tmiasko:inline-never, r=oli-obk
Never inline C variadics, cold functions, functions with incompatible attributes ... ... and fix generator inlining. Closes rust-lang#67863. Closes rust-lang#78859.
Configuration menu - View commit details
-
Copy full SHA for 591a39a - Browse repository at this point
Copy the full SHA 591a39aView commit details -
Rollup merge of rust-lang#78968 - zec:add-llvm-as, r=Mark-Simulacrum
Include llvm-as in llvm-tools-preview component Including `llvm-as` adds the ability to include assembly language fragments that can be inlined using LTO while making sure the correct version of LLVM is always used.
Configuration menu - View commit details
-
Copy full SHA for 2eceb84 - Browse repository at this point
Copy the full SHA 2eceb84View commit details -
Rollup merge of rust-lang#78969 - tmiasko:normalize, r=davidtwco
Normalize function type during validation During inlining, the callee body is normalized and has types revealed, but some of locals corresponding to the arguments might come from the caller body which is not. As a result the caller body does not pass validation without additional normalization. Closes rust-lang#78442.
Configuration menu - View commit details
-
Copy full SHA for e70291f - Browse repository at this point
Copy the full SHA e70291fView commit details -
Rollup merge of rust-lang#78980 - thiolliere:gui-fix-qpath, r=estebank
Fix rustc_ast_pretty print_qpath resulting in invalid macro input related rust-lang#76874 (third case) ### Issue: The input for a procedural macro is incorrect, for the rust code: ```rust mod m { pub trait Tr { type Ts: super::Tu; } } trait Tu { fn dummy() { } } #[may_proc_macro] fn foo() { <T as m::Tr>::Ts::dummy(); } ``` the macro will get the input: ```rust fn foo() { <T as m::Tr>::dummy(); } ``` Thus `Ts` has disappeared. ### Fix: This is due to invalid pretty print of qpath. This PR fix it.
Configuration menu - View commit details
-
Copy full SHA for 9eb4693 - Browse repository at this point
Copy the full SHA 9eb4693View commit details -
Rollup merge of rust-lang#79026 - mbrubeck:btree_retain, r=m-ou-se
Implement BTreeMap::retain and BTreeSet::retain Adds new methods `BTreeMap::retain` and `BTreeSet::retain`. These are implemented on top of `drain_filter` (rust-lang#70530). The API of these methods is identical to `HashMap::retain` and `HashSet::retain`, which were implemented in rust-lang#39560 and stabilized in rust-lang#36648. The docs and tests are also copied from HashMap/HashSet. The new methods are unstable, behind the `btree_retain` feature gate, with tracking issue rust-lang#79025. See also rust-lang/rfcs#1338.
Configuration menu - View commit details
-
Copy full SHA for d82ad6c - Browse repository at this point
Copy the full SHA d82ad6cView commit details