-
Notifications
You must be signed in to change notification settings - Fork 1.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
feature/spaceship: Clause 22: Containers #1046
feature/spaceship: Clause 22: Containers #1046
Commits on Jul 23, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 732d748 - Browse repository at this point
Copy the full SHA 732d748View commit details -
Configuration menu - View commit details
-
Copy full SHA for 06dfcd7 - Browse repository at this point
Copy the full SHA 06dfcd7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4ca3624 - Browse repository at this point
Copy the full SHA 4ca3624View commit details -
Configuration menu - View commit details
-
Copy full SHA for 17e650d - Browse repository at this point
Copy the full SHA 17e650dView commit details -
Configuration menu - View commit details
-
Copy full SHA for c2ec451 - Browse repository at this point
Copy the full SHA c2ec451View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3ed745d - Browse repository at this point
Copy the full SHA 3ed745dView commit details -
Configuration menu - View commit details
-
Copy full SHA for b7e83a4 - Browse repository at this point
Copy the full SHA b7e83a4View commit details -
Configuration menu - View commit details
-
Copy full SHA for fbc0f89 - Browse repository at this point
Copy the full SHA fbc0f89View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3c9a1a0 - Browse repository at this point
Copy the full SHA 3c9a1a0View commit details -
Configuration menu - View commit details
-
Copy full SHA for f6c5510 - Browse repository at this point
Copy the full SHA f6c5510View commit details -
queue<T, NonSpaceshipContainer> might be instantiated for a non-three_way_comparable NonSpaceshipContainer. In that case, it shouldn't attempt to grant friendship to the spaceship operator, because that would attempt to form compare_three_way_result_t<NonSpaceshipContainer>. As far as I can tell, there's no way in the Core Language for a queue to grant friendship to only one specialization of its non-member spaceship operator while respecting the constraint. (See WG21-N4861 [temp.friend]/9.) Instead, we need to template the friendship declaration, such that queue grants friendship to all of its spaceship operators. This is safe, just verbose.
Configuration menu - View commit details
-
Copy full SHA for 1dc5c43 - Browse repository at this point
Copy the full SHA 1dc5c43View commit details -
Configuration menu - View commit details
-
Copy full SHA for f8ef466 - Browse repository at this point
Copy the full SHA f8ef466View commit details
Commits on Jul 24, 2020
-
Verify
decltype(smaller <=> larger)
.We need a workaround until `std::pair` spaceship is implemented. Reorder `smaller <=> smaller_equal` for consistency with `smaller == smaller_equal` above.
Configuration menu - View commit details
-
Copy full SHA for dc3e324 - Browse repository at this point
Copy the full SHA dc3e324View commit details -
Configuration menu - View commit details
-
Copy full SHA for b2c5086 - Browse repository at this point
Copy the full SHA b2c5086View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0cfe696 - Browse repository at this point
Copy the full SHA 0cfe696View commit details -
Configuration menu - View commit details
-
Copy full SHA for c9699e7 - Browse repository at this point
Copy the full SHA c9699e7View commit details -
Move vector swap/comparison below vector<bool>.
This avoids anything potentially instantiating them before the partial specialization vector<bool, Alloc> has been declared.
Configuration menu - View commit details
-
Copy full SHA for 7538c77 - Browse repository at this point
Copy the full SHA 7538c77View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8858a09 - Browse repository at this point
Copy the full SHA 8858a09View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1416165 - Browse repository at this point
Copy the full SHA 1416165View commit details
Commits on Jul 25, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 015eae3 - Browse repository at this point
Copy the full SHA 015eae3View commit details -
Configuration menu - View commit details
-
Copy full SHA for cd9a610 - Browse repository at this point
Copy the full SHA cd9a610View commit details -
Use _Countr_zero() for even more efficiency.
Co-authored-by: Casey Carter <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 9fd5169 - Browse repository at this point
Copy the full SHA 9fd5169View commit details -
Further improve
_Vbase_compare_three_way
codegen.Testing `_Differing_bits == 0` might seem like it's asking the compiler to do more work (always XORing). But it allows the compiler to see that the input to `_Countr_zero` is nonzero, and that allows it to optimize away the runtime ISA check, unconditionally emitting a `tzcnt` instruction. Then, at the end of the function, we know something that the compiler doesn't realize: `_Mask` selects a differing bit (the least significant one), so `(_Left & _Mask)` and `(_Right & _Mask)` are zero/nonzero or vice versa. Therefore, we only need to inspect one side! I've verified that each of these changes improves the codegen. Co-authored-by: Casey Carter <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 195536b - Browse repository at this point
Copy the full SHA 195536bView commit details
Commits on Jul 28, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 664ac1b - Browse repository at this point
Copy the full SHA 664ac1bView commit details -
Configuration menu - View commit details
-
Copy full SHA for d6acf3e - Browse repository at this point
Copy the full SHA d6acf3eView commit details -
Add forward declaration, move _Vbase/_VBITS, follow synopsis order (n…
…o other changes).
Configuration menu - View commit details
-
Copy full SHA for 2059df3 - Browse repository at this point
Copy the full SHA 2059df3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0355938 - Browse repository at this point
Copy the full SHA 0355938View commit details -
Configuration menu - View commit details
-
Copy full SHA for e372f73 - Browse repository at this point
Copy the full SHA e372f73View commit details -
Configuration menu - View commit details
-
Copy full SHA for f906d04 - Browse repository at this point
Copy the full SHA f906d04View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3ec3965 - Browse repository at this point
Copy the full SHA 3ec3965View commit details