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 7 pull requests #135682

Merged
merged 19 commits into from
Jan 18, 2025
Merged

Rollup of 7 pull requests #135682

merged 19 commits into from
Jan 18, 2025

Conversation

matthiaskrgr
Copy link
Member

Successful merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

Kobzol and others added 19 commits January 14, 2025 21:21
Helps to provide 1:1 build experience between git-managed and tarball sources.

Signed-off-by: onur-ozkan <[email protected]>
this prepares the code structure for adding logical edges to the graph next
Instead of materializing `Locations::All` constraints as physical edges
at all the points in the CFG, we record them as logical edges and only
materialize them during traversal as successors for a given node.

This fixes the slowness/hang in the `saturating-float-casts.rs` test.
Mention the IEEE function by name and create a doc alias of the same.
const-eval: detect more pointers as definitely not-null

This fixes rust-lang#133523 by making the `scalar_may_be_null` check smarter: for instance, an odd offset in any 2-aligned allocation can never be null, even if it is out-of-bounds.

More generally, if an allocation with unknown base address B is aligned to alignment N, and a pointer is at offset X inside that allocation, then we know that `(B + X) mod N = B mod N + X mod N = X mod N`. Since `0 mod N` is definitely 0, if we learn that `X mod N` is *not* 0 we can deduce that `B + X` is not 0.

This is immediately visible on stable, via `ptr.is_null()` (and, more subtly, by not raising a UB error when such a pointer is used somewhere that a non-null pointer is required). Therefore nominating for `@rust-lang/lang.`
…kh726

Encode constraints that hold at all points as logical edges in location-sensitive polonius

Currently, with the full setup in rust-lang#134980 (but is from rust-lang#134268), the polonius location-sensitive analysis converts `Locations::All` typeck constraints as edges at all points in the CFG. This was temporary.

There's a FIXME about that already, and this PR implements it: we now use the constraints that hold at all points during traversal instead of eagerly materializing them as physical edges.

Another easy one `@jackh726.`

This fixes the slowness that was happening on the big CFG from the `saturating-float-casts` test (because of its 12M materialized edges) without, AFAICT, simply moving this overhead to traversal: materializing the logical edges is done on-demand.

r? `@jackh726` (no rush either)
Run clippy for rustc_codegen_gcc on CI

Requested on [Zulip](https://rust-lang.zulipchat.com/#narrow/channel/242791-t-infra/topic/Run.20clippy.20for.20rustc_codegen_gcc.20in.20the.20Rust.20CI).

Opening as a draft, since it's not clear which rules should be applied to it.

r? `@ghost`
…iplett

Move `std::pipe::*` into `std::io`

Resolve concern from final comment period rust-lang#127154 (comment)
…rballs, r=clubby789

Include x scripts in tarballs

Helps to provide 1:1 build experience between git-managed and tarball sources.
…=Kobzol

ci: mirror buildkit image to ghcr
…own, r=scottmcm

Stabilize `float_next_up_down`

FCP completed at [1].

For `f16` and `f128`, this just removes the gates in comments and doctests.

Closes rust-lang#91399

[1]: rust-lang#91399 (comment)
@rustbot rustbot added A-run-make Area: port run-make Makefiles to rmake.rs O-unix Operating system: Unix-like 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. rollup A PR which is a rollup labels Jan 18, 2025
@matthiaskrgr
Copy link
Member Author

@bors r+ rollup=never p=5

@bors
Copy link
Contributor

bors commented Jan 18, 2025

📌 Commit 23fb4f2 has been approved by matthiaskrgr

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 Jan 18, 2025
@bors
Copy link
Contributor

bors commented Jan 18, 2025

⌛ Testing commit 23fb4f2 with merge 0493557...

@bors
Copy link
Contributor

bors commented Jan 18, 2025

☀️ Test successful - checks-actions
Approved by: matthiaskrgr
Pushing 0493557 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jan 18, 2025
@bors bors merged commit 0493557 into rust-lang:master Jan 18, 2025
7 checks passed
@rustbot rustbot added this to the 1.86.0 milestone Jan 18, 2025
@rust-timer
Copy link
Collaborator

📌 Perf builds for each rolled up PR:

PR# Message Perf Build Sha
#133700 const-eval: detect more pointers as definitely not-null 8974c02a73db0148b85c88d535fe5570b7039b39 (link)
#135290 Encode constraints that hold at all points as logical edges… 5f50becce98befb953c3872442119fccd58a95ef (link)
#135478 Run clippy for rustc_codegen_gcc on CI a41c55af46f560618edbedd3baf3d6fac627bac1 (link)
#135583 Move std::pipe::* into std::io a58391347c834bf6a7d5cfd4a109d099d04a9ad6 (link)
#135612 Include x scripts in tarballs b292796530b5946de6b4047b9a5c916744d21dcd (link)
#135624 ci: mirror buildkit image to ghcr 61abaf138c59c09d2ef2149a5dcb68f6aa1446e8 (link)
#135661 Stabilize float_next_up_down d5e63af3607eefc54c4ed8becdfe43c8fce0acb6 (link)

previous master: efc25761e5

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

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (0493557): comparison URL.

Overall result: ✅ improvements - no action needed

@rustbot label: -perf-regression

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-0.4% [-0.4%, -0.4%] 2
All ❌✅ (primary) - - 0

Max RSS (memory usage)

Results (primary 1.1%, secondary -0.5%)

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)
1.1% [1.1%, 1.1%] 1
Regressions ❌
(secondary)
2.2% [1.1%, 3.3%] 2
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
-2.3% [-3.0%, -1.9%] 3
All ❌✅ (primary) 1.1% [1.1%, 1.1%] 1

Cycles

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

Binary size

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

Bootstrap: 762.052s -> 764.993s (0.39%)
Artifact size: 326.01 MiB -> 326.02 MiB (0.00%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-run-make Area: port run-make Makefiles to rmake.rs merged-by-bors This PR was explicitly merged by bors. O-unix Operating system: Unix-like 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.
Projects
None yet
Development

Successfully merging this pull request may close these issues.