Skip to content
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 5 pull requests #121914

Merged
merged 18 commits into from
Mar 3, 2024
Merged

Rollup of 5 pull requests #121914

merged 18 commits into from
Mar 3, 2024

Conversation

Nadrieril
Copy link
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

dtolnay and others added 18 commits February 25, 2024 20:55
Currently fails:

    ---- task::test_waker_will_wake_clone stdout ----
    thread 'task::test_waker_will_wake_clone' panicked at library/alloc/tests/task.rs:17:5:
    assertion failed: waker.will_wake(&clone)
For some reason it doesn't figure out the slice coercion.
…we won't be constraining hidden types here anymore
Adds initial support for DataFlowSanitizer to the Rust compiler. It
currently supports `-Zsanitizer-dataflow-abilist`. Additional options
for it can be passed to LLVM command line argument processor via LLVM
arguments using `llvm-args` codegen option (e.g.,
`-Cllvm-args=-dfsan-combine-pointer-labels-on-load=false`).
Add initial support for DataFlowSanitizer

Adds initial support for DataFlowSanitizer to the Rust compiler. It currently supports `-Zsanitizer-dataflow-abilist`. Additional options for it can be passed to LLVM command line argument processor via LLVM arguments using `llvm-args` codegen option (e.g., `-Cllvm-args=-dfsan-combine-pointer-labels-on-load=false`).
Preserve same vtable pointer when cloning raw waker, to fix Waker::will_wake

Fixes rust-lang#121600.

As `@jkarneges` identified in rust-lang#121600 (comment), the issue is two different const promotions produce two statics at different addresses, which may or may not later be deduplicated by the linker (in this case not).

Prior to rust-lang#119863, the content of the statics was compared, and they were equal. After, the address of the statics are compared and they are not equal.

It is documented that `will_wake` _"works on a best-effort basis, and may return false even when the Wakers would awaken the same task"_ so this PR fixes a quality-of-implementation issue, not a correctness issue.
…matthewjasper

match lowering: Lower bindings in a predictable order

After the recent refactorings, we can now lower bindings in a truly predictable order. The order in rust-lang#120214 was an improvement but not very clear. With this PR, we lower bindings from left to right, with the special case that `x @ pat` is traversed as `pat @ x` (i.e. `x` is lowered after any bindings in `pat`).

This description only applies in the absence of or-patterns. Or-patterns make everything complicated, because the binding place depends on the subpattern. Until I have a better idea I leave them to be handled in whatever weird order arises from today's code.

r? `@matthewjasper`
…piler-errors

Now that inlining, mir validation and const eval all use reveal-all, we won't be constraining hidden types here anymore

r? `@compiler-errors`

one bubble down, two more to go

the test is unrelated, just something I noticed would be good to test in both the old solver and the new.
…, r=compiler-errors

`f16` and `f128` step 2: intrinsics

Continuation of rust-lang#121728, another portion of rust-lang#114607.

This PR adds `f16` and `f128` intrinsics, and hooks them up to both HIR and LLVM. This is all still unexposed to the frontend, which will probably be the next step. Also update itanium mangling per `@rcvalle's` in https://github.com/rust-lang/rust/pull/121728/files#r1506570300, and fix a typo from step 1.

Once these types are usable in code, I will add the codegen tests from rust-lang#114607 (codegen is passing on that branch)

This does add more `unimplemented!`s to Clippy, but I still don't think we can do better until library support is added.

r? `@compiler-errors`
cc `@Nilstrieb`
`@rustbot` label +T-compiler +F-f16_and_f128
@rustbot rustbot added A-testsuite Area: The testsuite used to check the correctness of rustc S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Mar 2, 2024
@Nadrieril
Copy link
Member Author

Complements #121904

@bors r+ rollup=never p=5

@bors
Copy link
Contributor

bors commented Mar 2, 2024

📌 Commit 4c65eef has been approved by Nadrieril

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 2, 2024
@matthiaskrgr
Copy link
Member

matthiaskrgr commented Mar 2, 2024

heh, I think all of these could have some kind of unexpected perf impact or might fail a couple of times in ci, which is why I didn't roll them up so far.

@Nadrieril
Copy link
Member Author

Hah fair, they looked safe enough to me but I don't have your experience. We'll see

@bors
Copy link
Contributor

bors commented Mar 2, 2024

⌛ Testing commit 4c65eef with merge 0decdac...

@bors
Copy link
Contributor

bors commented Mar 3, 2024

☀️ Test successful - checks-actions
Approved by: Nadrieril
Pushing 0decdac to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Mar 3, 2024
@bors bors merged commit 0decdac into rust-lang:master Mar 3, 2024
12 checks passed
@rustbot rustbot added this to the 1.78.0 milestone Mar 3, 2024
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#120761 Add initial support for DataFlowSanitizer 57d8877370f41c8d11581f01a3d775cc52aab8e4 (link)
#121622 Preserve same vtable pointer when cloning raw waker, to fix… 020de25cc549ab9af059cbb70b7833b3e23528aa (link)
#121716 match lowering: Lower bindings in a predictable order 659c2706c32b1072ee23a5c11a8e0c663952e455 (link)
#121731 Now that inlining, mir validation and const eval all use re… 25e7b04050b5f0f43339326c122d2db9a014cb12 (link)
#121841 f16 and f128 step 2: intrinsics 8d7e39c0efe7c18ef67fc88bb1663e2cce2572b7 (link)

previous master: 5119208fd7

In the case of a perf regression, run the following command for each PR you suspect might be the cause: @rust-timer build $SHA

@Nadrieril Nadrieril deleted the rollup-ol98ncg branch March 3, 2024 01:30
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (0decdac): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
4.4% [2.2%, 8.6%] 3
Regressions ❌
(secondary)
3.6% [2.6%, 5.1%] 4
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-3.8% [-4.6%, -3.1%] 2
All ❌✅ (primary) 4.4% [2.2%, 8.6%] 3

Cycles

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-4.2% [-4.9%, -3.7%] 4
All ❌✅ (primary) - - 0

Binary size

Results

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
0.0% [0.0%, 0.1%] 3
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.0% [0.0%, 0.1%] 3

Bootstrap: 652.82s -> 654.421s (0.25%)
Artifact size: 175.51 MiB -> 175.48 MiB (-0.02%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-testsuite Area: The testsuite used to check the correctness of rustc merged-by-bors This PR was explicitly merged by bors. rollup A PR which is a rollup S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants