Skip to content

Upgrade to ena-0.14.1. #108253

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

Merged
merged 1 commit into from
Feb 26, 2023
Merged

Conversation

nnethercote
Copy link
Contributor

@nnethercote nnethercote commented Feb 20, 2023

It avoids some inlining within its inlined_probe_value function, which seems to result in better codegen for the very large process_obligations function within rustc. It might also help with reducing the bimodal perf results we see for the keccak and cranelift-codegen-0.82.1 benchmarks.

r? @ghost

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Feb 20, 2023
@rustbot
Copy link
Collaborator

rustbot commented Feb 20, 2023

These commits modify the Cargo.lock file. Random changes to Cargo.lock can be introduced when switching branches and rebasing PRs.
This was probably unintentional and should be reverted before this PR is merged.

If this was intentional then you can ignore this comment.

@nnethercote
Copy link
Contributor Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Feb 20, 2023
@bors
Copy link
Collaborator

bors commented Feb 20, 2023

⌛ Trying commit 50f4ac32b07d8464d58d5ef0dd7fc8310d970bfd with merge 4785ae1d9ecfdd6ccced95f65a2e6371377a510e...

@rustbot rustbot added the A-testsuite Area: The testsuite used to check the correctness of rustc label Feb 20, 2023
@nnethercote
Copy link
Contributor Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@bors
Copy link
Collaborator

bors commented Feb 20, 2023

⌛ Trying commit ee1e0e26c9d6af19d60bbb52cdfa097d7b3f3378 with merge 55467287b500fdb768ab16ccf6195eab4c4d233a...

@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Collaborator

bors commented Feb 20, 2023

💔 Test failed - checks-actions

@bors bors added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 20, 2023
@rust-log-analyzer

This comment has been minimized.

@nnethercote nnethercote force-pushed the ena-rm-VarValue-methods branch from ee1e0e2 to 87f2860 Compare February 20, 2023 21:37
@nnethercote
Copy link
Contributor Author

@bors try @rust-timer queue

@rust-timer

This comment has been minimized.

@bors
Copy link
Collaborator

bors commented Feb 20, 2023

⌛ Trying commit 87f2860a20013cfdfab7d72feaf914ea05561ba4 with merge d5269b225d4942eed38661728de3c08a427d0002...

@bors
Copy link
Collaborator

bors commented Feb 20, 2023

☀️ Try build successful - checks-actions
Build commit: d5269b225d4942eed38661728de3c08a427d0002 (d5269b225d4942eed38661728de3c08a427d0002)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (d5269b225d4942eed38661728de3c08a427d0002): comparison URL.

Overall result: ✅ improvements - no action needed

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf.

@bors rollup=never
@rustbot label: -S-waiting-on-perf -perf-regression

Instruction count

This is a highly reliable metric that was used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-1.6% [-2.2%, -0.7%] 3
Improvements ✅
(secondary)
-3.4% [-5.0%, -0.3%] 8
All ❌✅ (primary) -1.6% [-2.2%, -0.7%] 3

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)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-3.3% [-3.5%, -3.0%] 2
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -3.3% [-3.5%, -3.0%] 2

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)
9.4% [8.9%, 9.7%] 6
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Feb 21, 2023
@nnethercote
Copy link
Contributor Author

Perf results look good, though it's a bit hard to tell because keccak and cranelift have been noisy lately. Having said that, the check-full results for both have been much more stable over the past 3 days, and the check-full results in the perf run above have icounts lower than we have seen before.

@nnethercote nnethercote force-pushed the ena-rm-VarValue-methods branch from 87f2860 to 8572d39 Compare February 21, 2023 04:26
@nnethercote
Copy link
Contributor Author

Let's try again.

@bors try @rust-timer queue

@rustbot rustbot removed the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Feb 21, 2023
nnethercote added a commit to nnethercote/ena that referenced this pull request Feb 21, 2023
These have a single call site and the code is clearer without them. Plus
it might make rustc a little faster (see
rust-lang/rust#108253).
@nnethercote nnethercote force-pushed the ena-rm-VarValue-methods branch from 8572d39 to 97417d9 Compare February 23, 2023 21:49
@nnethercote nnethercote changed the title [EXPERIMENT] try ena with the rm-VarValue-methods branch Upgrade to ena-0.14.1. Feb 23, 2023
To get the small performance improvements from
rust-lang/ena#43.
@nnethercote nnethercote force-pushed the ena-rm-VarValue-methods branch from 97417d9 to d78ca52 Compare February 23, 2023 21:53
@joshtriplett
Copy link
Member

@bors r+ rollup=never

@bors
Copy link
Collaborator

bors commented Feb 23, 2023

📌 Commit d78ca52 has been approved by joshtriplett

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-author Status: This is awaiting some action (such as code changes or more information) from the author. labels Feb 23, 2023
@bors
Copy link
Collaborator

bors commented Feb 26, 2023

⌛ Testing commit d78ca52 with merge 619bad5e18705eb69c1e5145cbbb023b97264d57...

@bors
Copy link
Collaborator

bors commented Feb 26, 2023

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Feb 26, 2023
@rust-log-analyzer
Copy link
Collaborator

The job i686-mingw-1 failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
[2527/3021] Building CXX object lib/XRay/CMakeFiles/LLVMXRay.dir/LogBuilderConsumer.cpp.obj
[2528/3021] Building CXX object lib/XRay/CMakeFiles/LLVMXRay.dir/Trace.cpp.obj
[2529/3021] Linking CXX static library lib\libLLVMDlltoolDriver.a
FAILED: lib/libLLVMDlltoolDriver.a 
cmd.exe /C "cd . && "C:\Program Files\CMake\bin\cmake.exe" -E rm -f lib\libLLVMDlltoolDriver.a && D:\a\rust\rust\mingw32\bin\ar.exe qc lib\libLLVMDlltoolDriver.a  lib/ToolDrivers/llvm-dlltool/CMakeFiles/LLVMDlltoolDriver.dir/DlltoolDriver.cpp.obj && D:\a\rust\rust\mingw32\bin\ranlib.exe lib\libLLVMDlltoolDriver.a && cd ."
D:\a\rust\rust\mingw32\bin\ar.exe: could not create temporary file whilst writing archive: no more archived files
[2530/3021] Linking CXX static library lib\libLLVMDebugInfoDWARF.a
[2531/3021] Building CXX object lib/XRay/CMakeFiles/LLVMXRay.dir/RecordInitializer.cpp.obj
[2532/3021] Linking CXX static library lib\libLLVMRuntimeDyld.a
[2533/3021] Linking CXX static library lib\libLLVMJITLink.a
[2533/3021] Linking CXX static library lib\libLLVMJITLink.a
[2534/3021] Building CXX object lib/XRay/CMakeFiles/LLVMXRay.dir/Profile.cpp.obj
[2535/3021] Linking CXX static library lib\libLLVMObjectYAML.a
[2536/3021] Linking CXX static library lib\libLLVMDebugInfoPDB.a
ninja: build stopped: subcommand failed.
command did not execute successfully, got: exit code: 1


build script failed, must exit now', C:\Users\runneradmin\.cargo\registry\src\index.crates.io-1cd66030c949c28d\cmake-0.1.48\src\lib.rs:975:5
 finished in 283.270 seconds
Build completed unsuccessfully in 0:08:11
Build completed unsuccessfully in 0:08:11
make: *** [Makefile:78: ci-mingw-subset-1] Error 1

@nnethercote
Copy link
Contributor Author

@bors retry

@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 Feb 26, 2023
@bors
Copy link
Collaborator

bors commented Feb 26, 2023

⌛ Testing commit d78ca52 with merge dfa5643...

@bors
Copy link
Collaborator

bors commented Feb 26, 2023

☀️ Test successful - checks-actions
Approved by: joshtriplett
Pushing dfa5643 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Feb 26, 2023
@bors bors merged commit dfa5643 into rust-lang:master Feb 26, 2023
@rustbot rustbot added this to the 1.69.0 milestone Feb 26, 2023
@nnethercote nnethercote deleted the ena-rm-VarValue-methods branch February 26, 2023 20:06
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (dfa5643): 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)
- - 0
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-3.4% [-3.4%, -3.4%] 1
Improvements ✅
(secondary)
-4.8% [-4.8%, -4.8%] 1
All ❌✅ (primary) -3.4% [-3.4%, -3.4%] 1

Cycles

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

@nnethercote
Copy link
Contributor Author

nnethercote commented Feb 26, 2023

The perf CI run said there were no relevant improvements, but that's because keccak is so noisy that the benchmark harness's thresholds for it are around 7-10%(!) But I think there was a genuine improvement for keccak. E.g. consider the check-full graph:

Screenshot 2023-02-27 at 10 03 24 am

The highlighted data point is the measurement after this PR merged, and it's clearly lower than anything we've seen in the past month. Maybe it'll also help fix the bimodality? Fingers crossed.

(There is a similar story for cranelift-codegen, though the effect is smaller and a little less clear, because the obligation processing accounts for a smaller fraction of its compilation time.)

@nnethercote
Copy link
Contributor Author

We now have 12 data points since this PR merged, and both keccak and cranelift-codegen have been stable. Yay!

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. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants