-
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 9 pull requests #61758
Rollup of 9 pull requests #61758
Commits on Jun 1, 2019
-
Configuration menu - View commit details
-
Copy full SHA for cb12460 - Browse repository at this point
Copy the full SHA cb12460View commit details -
Configuration menu - View commit details
-
Copy full SHA for 67fd995 - Browse repository at this point
Copy the full SHA 67fd995View commit details
Commits on Jun 8, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 5fb099d - Browse repository at this point
Copy the full SHA 5fb099dView commit details -
Configuration menu - View commit details
-
Copy full SHA for ad91a8e - Browse repository at this point
Copy the full SHA ad91a8eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4123b5d - Browse repository at this point
Copy the full SHA 4123b5dView commit details -
Configuration menu - View commit details
-
Copy full SHA for dd442a1 - Browse repository at this point
Copy the full SHA dd442a1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4c242a9 - Browse repository at this point
Copy the full SHA 4c242a9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0a4504d - Browse repository at this point
Copy the full SHA 0a4504dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 26d4c8f - Browse repository at this point
Copy the full SHA 26d4c8fView commit details
Commits on Jun 9, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 20efb19 - Browse repository at this point
Copy the full SHA 20efb19View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7795b15 - Browse repository at this point
Copy the full SHA 7795b15View commit details -
Configuration menu - View commit details
-
Copy full SHA for dc13072 - Browse repository at this point
Copy the full SHA dc13072View commit details -
Configuration menu - View commit details
-
Copy full SHA for a859440 - Browse repository at this point
Copy the full SHA a859440View commit details -
Introduce InnerSpan abstraction
This should be used when trying to get at subsets of a larger span, especially when the larger span is not available in the code attempting to work with those subsets (especially common in the fmt_macros crate). This is usually a good replacement for (BytePos, BytePos) and (usize, usize) tuples. This commit also removes from_inner_byte_pos, since it took usize arguments, which is error prone.
Configuration menu - View commit details
-
Copy full SHA for b1c357e - Browse repository at this point
Copy the full SHA b1c357eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6b9740b - Browse repository at this point
Copy the full SHA 6b9740bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 45df52f - Browse repository at this point
Copy the full SHA 45df52fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8590074 - Browse repository at this point
Copy the full SHA 8590074View commit details -
Pass cflags rather than cxxflags to LLVM as CMAKE_C_FLAGS
We mistakenly pass cxxflags from the configuration to LLVM build as CMAKE_C_FLAGS.
Configuration menu - View commit details
-
Copy full SHA for 715578e - Browse repository at this point
Copy the full SHA 715578eView commit details
Commits on Jun 10, 2019
-
Configuration menu - View commit details
-
Copy full SHA for f9f8bfa - Browse repository at this point
Copy the full SHA f9f8bfaView commit details -
Overlap locals that never have storage live at the same time
...and are only included in a single variant.
Configuration menu - View commit details
-
Copy full SHA for 7868758 - Browse repository at this point
Copy the full SHA 7868758View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9de451c - Browse repository at this point
Copy the full SHA 9de451cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 63d73fd - Browse repository at this point
Copy the full SHA 63d73fdView commit details -
Configuration menu - View commit details
-
Copy full SHA for a38991f - Browse repository at this point
Copy the full SHA a38991fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 66e7493 - Browse repository at this point
Copy the full SHA 66e7493View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6680d03 - Browse repository at this point
Copy the full SHA 6680d03View commit details -
Configuration menu - View commit details
-
Copy full SHA for fbdff56 - Browse repository at this point
Copy the full SHA fbdff56View commit details -
Configuration menu - View commit details
-
Copy full SHA for c158d1c - Browse repository at this point
Copy the full SHA c158d1cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9f3ad88 - Browse repository at this point
Copy the full SHA 9f3ad88View commit details
Commits on Jun 11, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 7d32113 - Browse repository at this point
Copy the full SHA 7d32113View commit details -
ci: Collect CPU usage statistics on Azure
This commit adds a script which we'll execute on Azure Pipelines which is intended to run in the background and passively collect CPU usage statistics for our builders. The intention here is that we can use this information over time to diagnose issues with builders, see where we can optimize our build, fix parallelism issues, etc. This might not end up being too useful in the long run but it's data we've wanted to collect for quite some time now, so here's a stab at it! Comments about how this is intended to work can be found in the python script used here to collect CPU usage statistics. Closes rust-lang#48828
Configuration menu - View commit details
-
Copy full SHA for f2c37a5 - Browse repository at this point
Copy the full SHA f2c37a5View commit details -
is_fp and is_floating_point do the same thing, remove the former
also consistently mark all these is_* methods for inlining
Configuration menu - View commit details
-
Copy full SHA for 87d5fe0 - Browse repository at this point
Copy the full SHA 87d5fe0View commit details -
Configuration menu - View commit details
-
Copy full SHA for aeefbc4 - Browse repository at this point
Copy the full SHA aeefbc4View commit details
Commits on Jun 12, 2019
-
Rollup merge of rust-lang#60187 - tmandry:generator-optimization, r=e…
…ddyb Generator optimization: Overlap locals that never have storage live at the same time The specific goal of this optimization is to optimize async fns which use `await!`. Notably, `await!` has an enclosing scope around the futures it awaits ([definition](https://github.com/rust-lang/rust/blob/08bfe16129b0621bc90184f8704523d4929695ef/src/libstd/macros.rs#L365-L381)), which we rely on to implement the optimization. More generally, the optimization allows overlapping the storage of some locals which are never storage-live at the same time. **We care about storage-liveness when computing the layout, because knowing a field is `StorageDead` is the only way to prove it will not be accessed, either directly or through a reference.** To determine whether we can overlap two locals in the generator layout, we look at whether they might *both* be `StorageLive` at any point in the MIR. We use the `MaybeStorageLive` dataflow analysis for this. We iterate over every location in the MIR, and build a bitset for each local of the locals it might potentially conflict with. Next, we assign every saved local to one or more variants. The variants correspond to suspension points, and we include the set of locals live across a given suspension point in the variant. (Note that we use liveness instead of storage-liveness here; this ensures that the local has actually been initialized in each variant it has been included in. If the local is not live across a suspension point, then it doesn't need to be included in that variant.). It's important to note that the variants are a "view" into our layout. For the layout computation, we use a simplified approach. 1. Start with the set of locals assigned to only one variant. The rest are disqualified. 2. For each pair of locals which may conflict *and are not assigned to the same variant*, we pick one local to disqualify from overlapping. Disqualified locals go into a non-overlapping "prefix" at the beginning of our layout. This means they always have space reserved for them. All the locals that are allowed to overlap in each variant are then laid out after this prefix, in the "overlap zone". So, if A and B were disqualified, and X, Y, and Z were all eligible for overlap, our generator might look something like this: You can think of a generator as an enum, where some fields are shared between variants. e.g. ```rust enum Generator { Unresumed, Poisoned, Returned, Suspend0(A, B, X), Suspend1(B), Suspend2(A, Y, Z), } ``` where every mention of `A` and `B` refer to the same field, which does not move when changing variants. Note that `A` and `B` would automatically be sent to the prefix in this example. Assuming that `X` is never `StorageLive` at the same time as either `Y` or `Z`, it would be allowed to overlap with them. Note that if two locals (`Y` and `Z` in this case) are assigned to the same variant in our generator, their memory would never overlap in the layout. Thus they can both be eligible for the overlapping section, even if they are storage-live at the same time. --- Depends on: - [x] rust-lang#59897 Multi-variant layouts for generators - [x] rust-lang#60840 Preserve local scopes in generator MIR - [x] rust-lang#61373 Emit StorageDead along unwind paths for generators Before merging: - [x] ~Wrap the types of all generator fields in `MaybeUninitialized` in layout::ty::field~ (opened rust-lang#60889) - [x] Make PR description more complete (e.g. explain why storage liveness is important and why we have to check every location) - [x] Clean up TODO - [x] Fix the layout code to enforce that the same field never moves around in the generator - [x] Add tests for async/await - [x] ~Reduce # bits we store by half, since the conflict relation is symmetric~ (note: decided not to do this, for simplicity) - [x] Store liveness information for each yield point in our `GeneratorLayout`, that way we can emit more useful debuginfo AND tell miri which fields are definitely initialized for a given variant (see discussion at rust-lang#59897 (comment))
Configuration menu - View commit details
-
Copy full SHA for a60a5db - Browse repository at this point
Copy the full SHA a60a5dbView commit details -
Rollup merge of rust-lang#61348 - dronesforwork-forks:clone-from, r=K…
…odrAus Implement Clone::clone_from for Option and Result See rust-lang#28481
Configuration menu - View commit details
-
Copy full SHA for b5184e5 - Browse repository at this point
Copy the full SHA b5184e5View commit details -
Rollup merge of rust-lang#61568 - Mark-Simulacrum:symbol-fmt-macros, …
…r=estebank Use Symbol, Span in libfmt_macros I'm not super happy with this, personally, but I think it might be a decent start -- happy to take suggestions as to how to expand this or change things further. r? @estebank Fixes rust-lang#60795
Configuration menu - View commit details
-
Copy full SHA for d78260d - Browse repository at this point
Copy the full SHA d78260dView commit details -
Rollup merge of rust-lang#61632 - alexcrichton:azure-pipelines-cpu, r…
…=pietroalbini ci: Collect CPU usage statistics on Azure This commit adds a script which we'll execute on Azure Pipelines which is intended to run in the background and passively collect CPU usage statistics for our builders. The intention here is that we can use this information over time to diagnose issues with builders, see where we can optimize our build, fix parallelism issues, etc. This might not end up being too useful in the long run but it's data we've wanted to collect for quite some time now, so here's a stab at it! Comments about how this is intended to work can be found in the python script used here to collect CPU usage statistics. Closes rust-lang#48828
Configuration menu - View commit details
-
Copy full SHA for 6933034 - Browse repository at this point
Copy the full SHA 6933034View commit details -
Rollup merge of rust-lang#61654 - Electron-libre:use_slice_patterns_i…
…n_rustc, r=oli-obk,Centril use pattern matching for slices destructuring refs rust-lang#61542 Use slices pattern where it seems to make sense .
Configuration menu - View commit details
-
Copy full SHA for 9f22708 - Browse repository at this point
Copy the full SHA 9f22708View commit details -
Rollup merge of rust-lang#61671 - koalatux:nth-back-range, r=KodrAus
implement nth_back for Range(Inclusive) This is part of rust-lang#54054.
Configuration menu - View commit details
-
Copy full SHA for 3a8dc44 - Browse repository at this point
Copy the full SHA 3a8dc44View commit details -
Rollup merge of rust-lang#61688 - RalfJung:is-floating-point, r=cramertj
is_fp and is_floating_point do the same thing, remove the former also consistently mark all these `is_*` methods for inlining
Configuration menu - View commit details
-
Copy full SHA for ba5b04a - Browse repository at this point
Copy the full SHA ba5b04aView commit details -
Rollup merge of rust-lang#61705 - petrhosek:llvm-cflags, r=alexcrichton
Pass cflags rather than cxxflags to LLVM as CMAKE_C_FLAGS We mistakenly pass cxxflags from the configuration to LLVM build as CMAKE_C_FLAGS.
Configuration menu - View commit details
-
Copy full SHA for adea131 - Browse repository at this point
Copy the full SHA adea131View commit details -
Rollup merge of rust-lang#61734 - mati865:books, r=alexcrichton
Migrate rust-by-example to MdBook2
Configuration menu - View commit details
-
Copy full SHA for 4748b5b - Browse repository at this point
Copy the full SHA 4748b5bView commit details