-
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 16 pull requests #58668
Rollup of 16 pull requests #58668
Commits on Feb 3, 2019
-
RangeInclusive internal iteration performance improvement.
Specialize Iterator::try_fold and DoubleEndedIterator::try_rfold to improve code generation in all internal iteration scenarios. This changes brings the performance of internal iteration with RangeInclusive on par with the performance of iteration with Range: - Single conditional jump in hot loop, - Unrolling and vectorization, - And even Closed Form substitution. Unfortunately, it only applies to internal iteration. Despite various attempts at stream-lining the implementation of next and next_back, LLVM has stubbornly refused to optimize external iteration appropriately, leaving me with a choice between: - The current implementation, for which Closed Form substitution is performed, but which uses 2 conditional jumps in the hot loop when optimization fail. - An implementation using a "is_done" boolean, which uses 1 conditional jump in the hot loop when optimization fail, allowing unrolling and vectorization, but for which Closed Form substitution fails. In the absence of any conclusive evidence as to which usecase matters most, and with no assurance that the lack of Closed Form substitution is not indicative of other optimizations being foiled, there is no way to pick one implementation over the other, and thus I defer to the statu quo as far as next and next_back are concerned.
Configuration menu - View commit details
-
Copy full SHA for eb5b096 - Browse repository at this point
Copy the full SHA eb5b096View commit details
Commits on Feb 5, 2019
-
Configuration menu - View commit details
-
Copy full SHA for a15916b - Browse repository at this point
Copy the full SHA a15916bView commit details
Commits on Feb 6, 2019
-
Updated RELEASES.md for 1.33.0
Aaron Power committedFeb 6, 2019 Configuration menu - View commit details
-
Copy full SHA for 50be479 - Browse repository at this point
Copy the full SHA 50be479View commit details -
Configuration menu - View commit details
-
Copy full SHA for d4c52bf - Browse repository at this point
Copy the full SHA d4c52bfView commit details
Commits on Feb 7, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 6c71e7d - Browse repository at this point
Copy the full SHA 6c71e7dView commit details
Commits on Feb 9, 2019
-
Co-Authored-By: Aaronepower <Aaronepower@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for fb3ae57 - Browse repository at this point
Copy the full SHA fb3ae57View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4fed67f - Browse repository at this point
Copy the full SHA 4fed67fView commit details
Commits on Feb 12, 2019
-
Co-Authored-By: Aaronepower <Aaronepower@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 73921f6 - Browse repository at this point
Copy the full SHA 73921f6View commit details -
Co-Authored-By: Aaronepower <Aaronepower@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 8a026f1 - Browse repository at this point
Copy the full SHA 8a026f1View commit details -
Co-Authored-By: Aaronepower <Aaronepower@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 4c0a3d5 - Browse repository at this point
Copy the full SHA 4c0a3d5View commit details -
Co-Authored-By: Aaronepower <Aaronepower@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for ee3371e - Browse repository at this point
Copy the full SHA ee3371eView commit details
Commits on Feb 13, 2019
-
Configuration menu - View commit details
-
Copy full SHA for 4e5eda3 - Browse repository at this point
Copy the full SHA 4e5eda3View commit details -
Co-Authored-By: Aaronepower <Aaronepower@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for a496450 - Browse repository at this point
Copy the full SHA a496450View commit details -
check if
used_place
andmoved_place
are equal when determining if…… the move was partial
Configuration menu - View commit details
-
Copy full SHA for 96fd218 - Browse repository at this point
Copy the full SHA 96fd218View commit details -
Configuration menu - View commit details
-
Copy full SHA for 755b320 - Browse repository at this point
Copy the full SHA 755b320View commit details -
Configuration menu - View commit details
-
Copy full SHA for 283ffcf - Browse repository at this point
Copy the full SHA 283ffcfView commit details
Commits on Feb 14, 2019
-
Jethro Beekman committed
Feb 14, 2019 Configuration menu - View commit details
-
Copy full SHA for 347a42e - Browse repository at this point
Copy the full SHA 347a42eView commit details
Commits on Feb 17, 2019
-
help suggestion when trying to delimit string literals with directed …
…unicode quotes rust-lang#58436
Configuration menu - View commit details
-
Copy full SHA for c34aac7 - Browse repository at this point
Copy the full SHA c34aac7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 71cd4c8 - Browse repository at this point
Copy the full SHA 71cd4c8View commit details -
Change
Token::interpolated_to_tokenstream()
.It is currently a method of `Token`, but it only is valid to call if `self` is a `Token::Interpolated`. This commit eliminates the possibility of misuse by changing it to an associated function that takes a `Nonterminal`, which also simplifies the call sites. This requires splitting out a new function, `nonterminal_to_string`.
Configuration menu - View commit details
-
Copy full SHA for d26bf74 - Browse repository at this point
Copy the full SHA d26bf74View commit details -
It's present within `Token::Interpolated` as an optimization, so that if a nonterminal is converted to a `TokenStream` multiple times, the first-computed value is saved and reused. But in practice it's not needed. `interpolated_to_tokenstream()` is a cold function: it's only called a few dozen times while compiling rustc itself, and a few hundred times across the entire `rustc-perf` suite. Furthermore, when it is called, it is almost always the first conversion, so no benefit is gained from it. So this commit removes `LazyTokenStream`, along with the now-unnecessary `Token::interpolated()`. As well as a significant simplification, the removal speeds things up slightly, mostly due to not having to `drop` the `LazyTokenStream` instances.
Configuration menu - View commit details
-
Copy full SHA for f8801f3 - Browse repository at this point
Copy the full SHA f8801f3View commit details -
Avoid a
clone()
intranscribe()
.The current code (expensively) clones the value within an `Rc`. This commit changes things so that the `Rc` itself is (cheaply) cloned instead, avoid some allocations. This requires converting a few `Rc` instances to `Lrc`.
Configuration menu - View commit details
-
Copy full SHA for f0d8fbd - Browse repository at this point
Copy the full SHA f0d8fbdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 82ad4f1 - Browse repository at this point
Copy the full SHA 82ad4f1View commit details -
Remove some unnecessary
into()
calls.These are probably leftovers from recent `TokenStream` simplifications.
Configuration menu - View commit details
-
Copy full SHA for 895a794 - Browse repository at this point
Copy the full SHA 895a794View commit details
Commits on Feb 18, 2019
-
Configuration menu - View commit details
-
Copy full SHA for de05548 - Browse repository at this point
Copy the full SHA de05548View commit details
Commits on Feb 20, 2019
-
Turn duration consts into associated consts
Stjepan Glavina committedFeb 20, 2019 Configuration menu - View commit details
-
Copy full SHA for 8e219e7 - Browse repository at this point
Copy the full SHA 8e219e7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 2621564 - Browse repository at this point
Copy the full SHA 2621564View commit details -
Configuration menu - View commit details
-
Copy full SHA for d072510 - Browse repository at this point
Copy the full SHA d072510View commit details -
Configuration menu - View commit details
-
Copy full SHA for 02fe6a7 - Browse repository at this point
Copy the full SHA 02fe6a7View commit details -
Add examples for duration constants
Stjepan Glavina committedFeb 20, 2019 Configuration menu - View commit details
-
Copy full SHA for f223c03 - Browse repository at this point
Copy the full SHA f223c03View commit details -
Allow Self::Module to be mutated.
`codegen_allocator` and `write_metadata` mutate the underlying LLVM module. As such, it makes sense for these two functions to receive a mutable reference to the module (as opposed to an immutable one).
Configuration menu - View commit details
-
Copy full SHA for 36f18f2 - Browse repository at this point
Copy the full SHA 36f18f2View commit details -
Co-Authored-By: Aaronepower <Aaronepower@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for 42d749c - Browse repository at this point
Copy the full SHA 42d749cView commit details
Commits on Feb 21, 2019
-
Enable feature duration_constants in examples
Stjepan Glavina committedFeb 21, 2019 Configuration menu - View commit details
-
Copy full SHA for c6d24cd - Browse repository at this point
Copy the full SHA c6d24cdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8060eb4 - Browse repository at this point
Copy the full SHA 8060eb4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0ab2aed - Browse repository at this point
Copy the full SHA 0ab2aedView commit details -
Configuration menu - View commit details
-
Copy full SHA for e5d1fa5 - Browse repository at this point
Copy the full SHA e5d1fa5View commit details -
Optimise vec![false; N] to zero-alloc
Nowadays booleans have a well-defined representation, so there is no reason not to optimise their allocation.
Configuration menu - View commit details
-
Copy full SHA for 9f58c5f - Browse repository at this point
Copy the full SHA 9f58c5fView commit details
Commits on Feb 22, 2019
-
Configuration menu - View commit details
-
Copy full SHA for bba0ea2 - Browse repository at this point
Copy the full SHA bba0ea2View commit details -
Configuration menu - View commit details
-
Copy full SHA for b5ae4d5 - Browse repository at this point
Copy the full SHA b5ae4d5View commit details -
Make target pointer-width specific variants of (very old) huge-array-…
…simple.rs test. (and now unignore the test since it shouldn't break tests of cross-compiles anymore.)
Configuration menu - View commit details
-
Copy full SHA for e555854 - Browse repository at this point
Copy the full SHA e555854View commit details -
Switch from error patterns to
//~ ERROR
markers.AFAICT, we do not have the same const-eval issues that we used to when rust-lang#23926 was filed. (Probably because of the switch to miri for const-evaluation.)
Configuration menu - View commit details
-
Copy full SHA for b72ba05 - Browse repository at this point
Copy the full SHA b72ba05View commit details -
Configuration menu - View commit details
-
Copy full SHA for fda51c2 - Browse repository at this point
Copy the full SHA fda51c2View commit details -
Configuration menu - View commit details
-
Copy full SHA for cc1cd83 - Browse repository at this point
Copy the full SHA cc1cd83View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5f27a25 - Browse repository at this point
Copy the full SHA 5f27a25View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8ee1c07 - Browse repository at this point
Copy the full SHA 8ee1c07View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5952c61 - Browse repository at this point
Copy the full SHA 5952c61View commit details
Commits on Feb 23, 2019
-
Configuration menu - View commit details
-
Copy full SHA for d0c110f - Browse repository at this point
Copy the full SHA d0c110fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 42d5cf8 - Browse repository at this point
Copy the full SHA 42d5cf8View commit details -
Rollup merge of rust-lang#58122 - matthieu-m:range_incl_perf, r=dtolnay
RangeInclusive internal iteration performance improvement. Specialize `Iterator::try_fold` and `DoubleEndedIterator::try_rfold` to improve code generation in all internal iteration scenarios. This changes brings the performance of internal iteration with `RangeInclusive` on par with the performance of iteration with `Range`: - Single conditional jump in hot loop, - Unrolling and vectorization, - And even Closed Form substitution. Unfortunately, it only applies to internal iteration. Despite various attempts at stream-lining the implementation of `next` and `next_back`, LLVM has stubbornly refused to optimize external iteration appropriately, leaving me with a choice between: - The current implementation, for which Closed Form substitution is performed, but which uses 2 conditional jumps in the hot loop when optimization fail. - An implementation using a `is_done` boolean, which uses 1 conditional jump in the hot loop when optimization fail, allowing unrolling and vectorization, but for which Closed Form substitution fails. In the absence of any conclusive evidence as to which usecase matters most, and with no assurance that the lack of Closed Form substitution is not indicative of other optimizations being foiled, there is no way to pick one implementation over the other, and thus I defer to the statu quo as far as `next` and `next_back` are concerned.
Configuration menu - View commit details
-
Copy full SHA for 86d8b05 - Browse repository at this point
Copy the full SHA 86d8b05View commit details -
Rollup merge of rust-lang#58199 - clintfred:partial-move-err-msg, r=e…
…stebank Add better error message for partial move closes rust-lang#56657 r? @davidtwco
Configuration menu - View commit details
-
Copy full SHA for 55d428a - Browse repository at this point
Copy the full SHA 55d428aView commit details -
Rollup merge of rust-lang#58227 - Aaronepower:master, r=Centril
Updated RELEASES.md for 1.33.0 [Rendered](https://github.com/Aaronepower/rust/blob/master/RELEASES.md) r? @Mark-Simulacrum cc @rust-lang/release
Configuration menu - View commit details
-
Copy full SHA for 7c226e4 - Browse repository at this point
Copy the full SHA 7c226e4View commit details -
Rollup merge of rust-lang#58353 - matthewjasper:typeck-pattern-consta…
…nts, r=arielb1 Check the Self-type of inherent associated constants r? @arielb1
Configuration menu - View commit details
-
Copy full SHA for e855b05 - Browse repository at this point
Copy the full SHA e855b05View commit details -
Rollup merge of rust-lang#58453 - jethrogb:jb/sgx-panic-abort, r=nagisa
SGX target: fix panic = abort What is the difference between `no_mangle` and `rustc_std_internal_symbol`?
Configuration menu - View commit details
-
Copy full SHA for 4fc275d - Browse repository at this point
Copy the full SHA 4fc275dView commit details -
Rollup merge of rust-lang#58476 - nnethercote:rm-LazyTokenStream, r=p…
…etrochenkov Remove `LazyTokenStream`. `LazyTokenStream` was added in rust-lang#40939. Perhaps it was an effective optimization then, but no longer. This PR removes it, making the code both simpler and faster. r? @alexcrichton
Configuration menu - View commit details
-
Copy full SHA for c8ade46 - Browse repository at this point
Copy the full SHA c8ade46View commit details -
Rollup merge of rust-lang#58526 - pmccarter:master, r=estebank
Special suggestion for illegal unicode curly quote pairs Fixes rust-lang#58436 Did not end up expanding the error message span to include the full string literal since I figured the start of the token was the issue, while the help suggestion span would include up to the closing quotation mark. The look ahead logic does not affect the reader position, not sure if that is an issue (if eg it should still continue to parse after the closing quote without erroring out).
Configuration menu - View commit details
-
Copy full SHA for d6c330d - Browse repository at this point
Copy the full SHA d6c330dView commit details -
Rollup merge of rust-lang#58595 - stjepang:make-duration-consts-assoc…
…iated, r=oli-obk Turn duration consts into associated consts As suggested in rust-lang#57391 (comment), I'm moving `Duration` constants (`SECOND`, `MILLISECOND` and so on; currently behind unstable `duration_constants` feature) into the `impl Duration` block. cc @frewsxcv @SimonSapin
Configuration menu - View commit details
-
Copy full SHA for c0275c2 - Browse repository at this point
Copy the full SHA c0275c2View commit details -
Rollup merge of rust-lang#58609 - gabi-250:mutable-refs, r=oli-obk
Allow Self::Module to be mutated. This only changes `&Self::Module` to `&mut Self::Module` in a couple of places. `codegen_allocator` and `write_metadata` from `ExtraBackendMethods` mutate the underlying LLVM module. As such, it makes sense for these two functions to receive a mutable reference to the module (as opposed to an immutable one). I am trying to implement `codegen_allocator` for my backend, and I need to be able to mutate `Self::Module`: https://github.com/rust-lang/rust/blob/f66e4697ae286985ddefc53c3a047614568458bb/src/librustc_codegen_ssa/traits/backend.rs#L41 Modifying the module in `codegen_allocator`/`write_metadata` is not a problem for the LLVM backend, because [ModuleLlvm](https://github.com/rust-lang/rust/blob/master/src/librustc_codegen_llvm/lib.rs#L357) contains a raw pointer to the underlying LLVM module, so it can easily be mutated through FFI calls. I am trying to avoid interior mutability and `unsafe` as much as I can. What do you think? Does this change make sense, or is there a reason why this should stay the way it is?
Configuration menu - View commit details
-
Copy full SHA for 8829866 - Browse repository at this point
Copy the full SHA 8829866View commit details -
Rollup merge of rust-lang#58628 - RReverser:optimise-vec-false, r=oli…
…-obk Optimise vec![false; N] to zero-alloc Nowadays booleans have a well-defined representation, so there is no reason not to optimise their allocation.
Configuration menu - View commit details
-
Copy full SHA for 2841c45 - Browse repository at this point
Copy the full SHA 2841c45View commit details -
Rollup merge of rust-lang#58642 - tspiteri:intra-rustdoc-prim-method,…
… r=GuillaumeGomez rustdoc: support methods on primitives in intra-doc links Fixes rust-lang#58598.
Configuration menu - View commit details
-
Copy full SHA for dda418c - Browse repository at this point
Copy the full SHA dda418cView commit details -
Rollup merge of rust-lang#58643 - GuillaumeGomez:extra-variables, r=M…
…anishearth Don't generate minification variables if minification disabled If the minification is disabled, there is no sense having those variables. r? @QuietMisdreavus
Configuration menu - View commit details
-
Copy full SHA for 9c99d3e - Browse repository at this point
Copy the full SHA 9c99d3eView commit details -
Rollup merge of rust-lang#58648 - pnkfelix:issue-23926-update-tests, …
…r=nikomatsakis Update tests to account for cross-platform testing and miri. Fix rust-lang#23926
Configuration menu - View commit details
-
Copy full SHA for 3de7aaf - Browse repository at this point
Copy the full SHA 3de7aafView commit details -
Rollup merge of rust-lang#58654 - estebank:underflow, r=nikomatsakis
Do not underflow after resetting unmatched braces count Fix rust-lang#58638. r? @oli-obk
Configuration menu - View commit details
-
Copy full SHA for 34d43fc - Browse repository at this point
Copy the full SHA 34d43fcView commit details -
Rollup merge of rust-lang#58658 - pmccarter:align_msg, r=matthewjasper
Add expected/provided byte alignments to validation error message Fixes rust-lang#58617
Configuration menu - View commit details
-
Copy full SHA for 6fa3116 - Browse repository at this point
Copy the full SHA 6fa3116View commit details -
Rollup merge of rust-lang#58667 - kenta7777:reduce-mir-code-repetitio…
…n, r=petrochenkov Reduce Miri-related Code Repetition `like (n << amt) >> amt` This Pull Request fixes a part of [rust-lang#49937](rust-lang#49937).
Configuration menu - View commit details
-
Copy full SHA for 6f374ea - Browse repository at this point
Copy the full SHA 6f374eaView commit details