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

Revert part of #94372 to improve performance #97905

Merged
merged 2 commits into from
Jun 11, 2022

Conversation

nnethercote
Copy link
Contributor

#94732 was supposed to give small but widespread performance improvements, as judged from three per-merge performance runs. But the performance run that occurred after merging included a roughly equal number of improvements and regressions, for unclear reasons.

This PR is for a test run reverting those changes, to see what happens.

r? @ghost

@rustbot rustbot added T-compiler Relevant to the compiler 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. labels Jun 9, 2022
@nnethercote
Copy link
Contributor Author

I tried this reversion locally and got uniform regressions, which is consistent with the notion that #94732 was a clear performance win.

@nnethercote
Copy link
Contributor Author

@bors try @rust-timer queue

@rust-timer
Copy link
Collaborator

Awaiting bors try build completion.

@rustbot label: +S-waiting-on-perf

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jun 9, 2022
@bors
Copy link
Contributor

bors commented Jun 9, 2022

⌛ Trying commit e0812d425cee9b5a0575431b5ada6313054ffc41 with merge ab6773e662acf0c4faeafbdadd499bf9c50c575a...

@bors
Copy link
Contributor

bors commented Jun 9, 2022

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

@rust-timer
Copy link
Collaborator

Queued ab6773e662acf0c4faeafbdadd499bf9c50c575a with parent 282445a, future comparison URL.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (ab6773e662acf0c4faeafbdadd499bf9c50c575a): comparison url.

Instruction count

  • Primary benchmarks: mixed results
  • Secondary benchmarks: mixed results
mean1 max count2
Regressions 😿
(primary)
0.3% 0.4% 19
Regressions 😿
(secondary)
0.3% 0.5% 13
Improvements 🎉
(primary)
-0.4% -0.8% 17
Improvements 🎉
(secondary)
-0.5% -0.8% 19
All 😿🎉 (primary) 0.0% -0.8% 36

Max RSS (memory usage)

Results
  • Primary benchmarks: 🎉 relevant improvement found
  • Secondary benchmarks: 😿 relevant regression found
mean1 max count2
Regressions 😿
(primary)
N/A N/A 0
Regressions 😿
(secondary)
3.9% 3.9% 1
Improvements 🎉
(primary)
-2.4% -2.4% 1
Improvements 🎉
(secondary)
N/A N/A 0
All 😿🎉 (primary) -2.4% -2.4% 1

Cycles

Results
  • Primary benchmarks: mixed results
  • Secondary benchmarks: mixed results
mean1 max count2
Regressions 😿
(primary)
2.1% 2.2% 2
Regressions 😿
(secondary)
2.6% 3.5% 6
Improvements 🎉
(primary)
-2.1% -2.1% 1
Improvements 🎉
(secondary)
-3.3% -3.3% 2
All 😿🎉 (primary) 0.7% 2.2% 3

If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf.

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.

Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @rustbot label: +perf-regression-triaged along with sufficient written justification. If you cannot justify the regressions please fix the regressions and do another perf run. If the next run shows neutral or positive results, the label will be automatically removed.

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

Footnotes

  1. the arithmetic mean of the percent change 2 3

  2. number of relevant changes 2 3

@rustbot rustbot added perf-regression Performance regression. S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Jun 9, 2022
@nnethercote
Copy link
Contributor Author

Ok, those look very much like the inversion of the original results. I will try performance runs on some partial reversions, try to work out if a particular commit caused the problems.

@nnethercote
Copy link
Contributor Author

I have updated to just revert the 5th (and final) commit.

@bors try @rust-timer queue

@rust-timer
Copy link
Collaborator

Awaiting bors try build completion.

@rustbot label: +S-waiting-on-perf

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Jun 9, 2022
@bors
Copy link
Contributor

bors commented Jun 9, 2022

⌛ Trying commit 7f51a1b with merge 9ce6b6f7727324e9d01fbc24ae3d77e53d1ee2ac...

@bors
Copy link
Contributor

bors commented Jun 10, 2022

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

@rust-timer
Copy link
Collaborator

Queued 9ce6b6f7727324e9d01fbc24ae3d77e53d1ee2ac with parent 420c970, future comparison URL.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (9ce6b6f7727324e9d01fbc24ae3d77e53d1ee2ac): comparison url.

Instruction count

  • Primary benchmarks: 🎉 relevant improvement found
  • Secondary benchmarks: no relevant changes found
mean1 max count2
Regressions 😿
(primary)
N/A N/A 0
Regressions 😿
(secondary)
N/A N/A 0
Improvements 🎉
(primary)
-1.0% -1.0% 1
Improvements 🎉
(secondary)
N/A N/A 0
All 😿🎉 (primary) -1.0% -1.0% 1

Max RSS (memory usage)

Results
  • Primary benchmarks: 😿 relevant regression found
  • Secondary benchmarks: mixed results
mean1 max count2
Regressions 😿
(primary)
1.9% 1.9% 1
Regressions 😿
(secondary)
2.0% 2.3% 2
Improvements 🎉
(primary)
N/A N/A 0
Improvements 🎉
(secondary)
-2.5% -2.6% 2
All 😿🎉 (primary) 1.9% 1.9% 1

Cycles

Results
  • Primary benchmarks: mixed results
  • Secondary benchmarks: no relevant changes found
mean1 max count2
Regressions 😿
(primary)
2.6% 2.6% 1
Regressions 😿
(secondary)
N/A N/A 0
Improvements 🎉
(primary)
-3.0% -3.0% 1
Improvements 🎉
(secondary)
N/A N/A 0
All 😿🎉 (primary) -0.2% -3.0% 2

If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf.

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-review -S-waiting-on-perf -perf-regression

Footnotes

  1. the arithmetic mean of the percent change 2 3

  2. number of relevant changes 2 3

@rustbot rustbot removed S-waiting-on-perf Status: Waiting on a perf run to be completed. perf-regression Performance regression. labels Jun 10, 2022
@nnethercote
Copy link
Contributor Author

Ok, reverting the 5th commit didn't do much. Let's try reverting the 4th commit as well.

@bors try @rust-timer queue

@bjorn3
Copy link
Member

bjorn3 commented Jun 10, 2022

I wonder if making CacheEncoder non-generic somehow resulted in less inlining or something.

I would guess so. Generic functions are codegened in the crate that uses them.

are you happy to have these two commits reverted?

Yes. It would be nice to have the finish() move reapplied in a follow-up assuming that it doesn't regress performance.

@bors r+

@bors
Copy link
Contributor

bors commented Jun 10, 2022

📌 Commit 3186e31 has been approved by bjorn3

@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 Jun 10, 2022
@bors
Copy link
Contributor

bors commented Jun 10, 2022

⌛ Testing commit 3186e31 with merge 10fcd0a19dbd726aeb7ad57e116d78f4f1aab745...

@rust-log-analyzer
Copy link
Collaborator

The job x86_64-gnu-tools failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
   Compiling rustc_traits v0.0.0 (/checkout/compiler/rustc_traits)
   Compiling rustc_mir_build v0.0.0 (/checkout/compiler/rustc_mir_build)
[RUSTC-TIMING] rustc_ty_utils test:false 28.544
   Compiling rustc_typeck v0.0.0 (/checkout/compiler/rustc_typeck)
*** Error in `/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/rustc': double free or corruption (out): 0x00007ff6fd307330 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777f5)[0x7ff7622267f5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8038a)[0x7ff76222f38a]
/lib/x86_64-linux-gnu/libc.so.6(+0x83380)[0x7ff762232380]
/lib/x86_64-linux-gnu/libc.so.6(realloc+0x199)[0x7ff7622338a9]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x33c07bd)[0x7ff765ce77bd]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x31ae9b1)[0x7ff765ad59b1]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x31b7bee)[0x7ff765adebee]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x31b0128)[0x7ff765ad7128]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x3534992)[0x7ff765e5b992]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x317392b)[0x7ff765a9a92b]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x3179bf3)[0x7ff765aa0bf3]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x2563c2d)[0x7ff764e8ac2d]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x1578a04)[0x7ff763e9fa04]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x2564e55)[0x7ff764e8be55]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x22a13ce)[0x7ff764bc83ce]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x152a611)[0x7ff763e51611]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x1394e3c)[0x7ff763cbbe3c]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x139bac6)[0x7ff763cc2ac6]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x1388ae0)[0x7ff763cafae0]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x1381960)[0x7ff763ca8960]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x144b995)[0x7ff763d72995]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/librustc_driver-dd5bcd4cdc2c6057.so(+0x14e6b5a)[0x7ff763e0db5a]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/../lib/libstd-9e3036d1402b84ee.so(rust_metadata_std_836a811975e52724+0xc3733)[0x7ff76263c733]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x76ba)[0x7ff761b8d6ba]
/lib/x86_64-linux-gnu/libc.so.6(clone+0x6d)[0x7ff7622b651d]
======= Memory map: ========
560518a00000-560518a01000 r-xp 00000000 08:01 14715264                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/rustc
560518c00000-560518c01000 r--p 00000000 08:01 14715264                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/rustc
560518c01000-560518c02000 rw-p 00001000 08:01 14715264                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/bin/rustc
56051913e000-56051b7bf000 rw-p 00000000 00:00 0                          [heap]
7ff6fc000000-7ff6ffffc000 rw-p 00000000 00:00 0 
7ff6ffffc000-7ff700000000 ---p 00000000 00:00 0 
7ff704000000-7ff70788c000 rw-p 00000000 00:00 0 
7ff70788c000-7ff708000000 ---p 00000000 00:00 0 
7ff708000000-7ff70b9f4000 rw-p 00000000 00:00 0 
7ff70b9f4000-7ff70c000000 ---p 00000000 00:00 0 
7ff70c000000-7ff710000000 rw-p 00000000 00:00 0 
7ff710000000-7ff713f99000 rw-p 00000000 00:00 0 
7ff713f99000-7ff714000000 ---p 00000000 00:00 0 
7ff714000000-7ff714021000 rw-p 00000000 00:00 0 
7ff714021000-7ff718000000 ---p 00000000 00:00 0 
7ff718000000-7ff718b6e000 rw-p 00000000 00:00 0 
7ff718b6e000-7ff71c000000 ---p 00000000 00:00 0 
7ff71c000000-7ff71fd8b000 rw-p 00000000 00:00 0 
7ff71fd8b000-7ff720000000 ---p 00000000 00:00 0 
7ff720000000-7ff724000000 rw-p 00000000 00:00 0 
7ff724000000-7ff727fff000 rw-p 00000000 00:00 0 
7ff727fff000-7ff728000000 ---p 00000000 00:00 0 
7ff728000000-7ff72bc71000 rw-p 00000000 00:00 0 
7ff72bc71000-7ff72c000000 ---p 00000000 00:00 0 
7ff72c000000-7ff72ffac000 rw-p 00000000 00:00 0 
7ff72ffac000-7ff730000000 ---p 00000000 00:00 0 
7ff734000000-7ff737e7a000 rw-p 00000000 00:00 0 
7ff737e7a000-7ff738000000 ---p 00000000 00:00 0 
7ff738000000-7ff73bda2000 rw-p 00000000 00:00 0 
7ff73bda2000-7ff73c000000 ---p 00000000 00:00 0 
7ff73c000000-7ff740000000 rw-p 00000000 00:00 0 
7ff740000000-7ff744000000 rw-p 00000000 00:00 0 
7ff7456c7000-7ff7476c8000 rw-p 00000000 00:00 0 
7ff7476c8000-7ff747dc5000 r-xp 00000000 08:01 14968904                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libchalk_derive-7c986050a4304ad1.so
7ff747dc5000-7ff747fc4000 ---p 006fd000 08:01 14968904                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libchalk_derive-7c986050a4304ad1.so
7ff747fc4000-7ff747fff000 r--p 006fc000 08:01 14968904                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libchalk_derive-7c986050a4304ad1.so
7ff747fff000-7ff748000000 rw-p 00737000 08:01 14968904                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libchalk_derive-7c986050a4304ad1.so
7ff748000000-7ff74c000000 rw-p 00000000 00:00 0 
7ff74cc7c000-7ff74cc7d000 ---p 00000000 00:00 0 
7ff74cc7d000-7ff74ce7d000 rw-p 00000000 00:00 0 
7ff74ce7d000-7ff74ce7e000 ---p 00000000 00:00 0 
7ff74ce7e000-7ff74d07e000 rw-p 00000000 00:00 0 
7ff74d07e000-7ff74d07f000 ---p 00000000 00:00 0 
7ff74d07f000-7ff74d27f000 rw-p 00000000 00:00 0 
7ff74d69e000-7ff74d8df000 rw-p 00000000 00:00 0 
7ff74dc7f000-7ff74dc80000 ---p 00000000 00:00 0 
7ff74dc80000-7ff74df61000 rw-p 00000000 00:00 0 
7ff74e3a5000-7ff74e3a6000 ---p 00000000 00:00 0 
7ff74e3a6000-7ff74e5a6000 rw-p 00000000 00:00 0 
7ff74ebc9000-7ff74ec4a000 rw-p 00000000 00:00 0 
7ff74f2f2000-7ff74faa2000 r-xp 00000000 08:01 14969085                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libserde_derive-6eac6d6816e82c0c.so
7ff74faa2000-7ff74fca2000 ---p 007b0000 08:01 14969085                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libserde_derive-6eac6d6816e82c0c.so
7ff74fca2000-7ff74fcdb000 r--p 007b0000 08:01 14969085                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libserde_derive-6eac6d6816e82c0c.so
7ff74fcdb000-7ff74fcdc000 rw-p 007e9000 08:01 14969085                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libserde_derive-6eac6d6816e82c0c.so
7ff751287000-7ff751931000 r-xp 00000000 08:01 14968913                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libunic_langid_macros_impl-f0a62b738d1ce3af.so
7ff751931000-7ff751b31000 ---p 006aa000 08:01 14968913                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libunic_langid_macros_impl-f0a62b738d1ce3af.so
7ff751b31000-7ff751b6a000 r--p 006aa000 08:01 14968913                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libunic_langid_macros_impl-f0a62b738d1ce3af.so
7ff751b6a000-7ff751b6b000 rw-p 006e3000 08:01 14968913                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libunic_langid_macros_impl-f0a62b738d1ce3af.so
7ff751b6b000-7ff751d8b000 r-xp 00000000 08:01 14968453                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libproc_macro_hack-fd0fddafec950a99.so
7ff751d8b000-7ff751f8a000 ---p 00220000 08:01 14968453                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libproc_macro_hack-fd0fddafec950a99.so
7ff751f8a000-7ff751f9d000 r--p 0021f000 08:01 14968453                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libproc_macro_hack-fd0fddafec950a99.so
7ff751f9d000-7ff751f9e000 rw-p 00232000 08:01 14968453                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libproc_macro_hack-fd0fddafec950a99.so
7ff75200d000-7ff7526f9000 r-xp 00000000 08:01 14969011                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libthiserror_impl-8382b828622c6de3.so
7ff7526f9000-7ff7528f8000 ---p 006ec000 08:01 14969011                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libthiserror_impl-8382b828622c6de3.so
7ff7528f8000-7ff752931000 r--p 006eb000 08:01 14969011                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libthiserror_impl-8382b828622c6de3.so
7ff752931000-7ff752932000 rw-p 00724000 08:01 14969011                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libthiserror_impl-8382b828622c6de3.so
7ff754c8b000-7ff75534e000 r-xp 00000000 08:01 14968986                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libtracing_attributes-21b93e6fd5e85f7f.so
7ff75534e000-7ff75554d000 ---p 006c3000 08:01 14968986                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libtracing_attributes-21b93e6fd5e85f7f.so
7ff75554d000-7ff755585000 r--p 006c2000 08:01 14968986                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libtracing_attributes-21b93e6fd5e85f7f.so
7ff755585000-7ff755586000 rw-p 006fa000 08:01 14968986                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/libtracing_attributes-21b93e6fd5e85f7f.so
7ff755990000-7ff75631d000 r-xp 00000000 08:01 14969102                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/librustc_macros-423d3bca2d735392.so
7ff75631d000-7ff75651d000 ---p 0098d000 08:01 14969102                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/librustc_macros-423d3bca2d735392.so
7ff75651d000-7ff756570000 r--p 0098d000 08:01 14969102                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/librustc_macros-423d3bca2d735392.so
7ff756570000-7ff756571000 rw-p 009e0000 08:01 14969102                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/librustc_macros-423d3bca2d735392.so
7ff75c000000-7ff760000000 rw-p 00000000 00:00 0 
7ff7609c0000-7ff760b39000 rw-p 00000000 00:00 0 
7ff760c0b000-7ff760c4c000 rw-p 00000000 00:00 0 
7ff760c4c000-7ff760c4d000 ---p 00000000 00:00 0 
7ff760c4d000-7ff76144d000 rw-p 00000000 00:00 0 
7ff76144d000-7ff761463000 r-xp 00000000 08:01 4388593                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7ff761463000-7ff761662000 ---p 00016000 08:01 4388593                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7ff761662000-7ff761663000 rw-p 00015000 08:01 4388593                    /lib/x86_64-linux-gnu/libgcc_s.so.1
7ff761663000-7ff76167c000 r-xp 00000000 08:01 4388671                    /lib/x86_64-linux-gnu/libz.so.1.2.8
7ff76167c000-7ff76187b000 ---p 00019000 08:01 4388671                    /lib/x86_64-linux-gnu/libz.so.1.2.8
7ff76187b000-7ff76187c000 r--p 00018000 08:01 4388671                    /lib/x86_64-linux-gnu/libz.so.1.2.8
7ff76187c000-7ff76187d000 rw-p 00019000 08:01 4388671                    /lib/x86_64-linux-gnu/libz.so.1.2.8
7ff76187d000-7ff761985000 r-xp 00000000 08:01 4388604                    /lib/x86_64-linux-gnu/libm-2.23.so
7ff761985000-7ff761b84000 ---p 00108000 08:01 4388604                    /lib/x86_64-linux-gnu/libm-2.23.so
7ff761b84000-7ff761b85000 r--p 00107000 08:01 4388604                    /lib/x86_64-linux-gnu/libm-2.23.so
7ff761b85000-7ff761b86000 rw-p 00108000 08:01 4388604                    /lib/x86_64-linux-gnu/libm-2.23.so
7ff761b86000-7ff761b9e000 r-xp 00000000 08:01 4388640                    /lib/x86_64-linux-gnu/libpthread-2.23.so
7ff761b9e000-7ff761d9d000 ---p 00018000 08:01 4388640                    /lib/x86_64-linux-gnu/libpthread-2.23.so
7ff761d9d000-7ff761d9e000 r--p 00017000 08:01 4388640                    /lib/x86_64-linux-gnu/libpthread-2.23.so
7ff761d9e000-7ff761d9f000 rw-p 00018000 08:01 4388640                    /lib/x86_64-linux-gnu/libpthread-2.23.so
7ff761d9f000-7ff761da3000 rw-p 00000000 00:00 0 
7ff761da3000-7ff761da6000 r-xp 00000000 08:01 4388585                    /lib/x86_64-linux-gnu/libdl-2.23.so
7ff761da6000-7ff761fa5000 ---p 00003000 08:01 4388585                    /lib/x86_64-linux-gnu/libdl-2.23.so
7ff761fa5000-7ff761fa6000 r--p 00002000 08:01 4388585                    /lib/x86_64-linux-gnu/libdl-2.23.so
7ff761fa6000-7ff761fa7000 rw-p 00003000 08:01 4388585                    /lib/x86_64-linux-gnu/libdl-2.23.so
7ff761fa7000-7ff761fae000 r-xp 00000000 08:01 4388646                    /lib/x86_64-linux-gnu/librt-2.23.so
7ff761fae000-7ff7621ad000 ---p 00007000 08:01 4388646                    /lib/x86_64-linux-gnu/librt-2.23.so
7ff7621ad000-7ff7621ae000 r--p 00006000 08:01 4388646                    /lib/x86_64-linux-gnu/librt-2.23.so
7ff7621ae000-7ff7621af000 rw-p 00007000 08:01 4388646                    /lib/x86_64-linux-gnu/librt-2.23.so
7ff7621af000-7ff76236f000 r-xp 00000000 08:01 4388572                    /lib/x86_64-linux-gnu/libc-2.23.so
7ff76236f000-7ff76256f000 ---p 001c0000 08:01 4388572                    /lib/x86_64-linux-gnu/libc-2.23.so
7ff76256f000-7ff762573000 r--p 001c0000 08:01 4388572                    /lib/x86_64-linux-gnu/libc-2.23.so
7ff762573000-7ff762575000 rw-p 001c4000 08:01 4388572                    /lib/x86_64-linux-gnu/libc-2.23.so
7ff762575000-7ff762579000 rw-p 00000000 00:00 0 
7ff762579000-7ff762715000 r-xp 00000000 08:01 14454595                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libstd-9e3036d1402b84ee.so
7ff762715000-7ff762915000 ---p 0019c000 08:01 14454595                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libstd-9e3036d1402b84ee.so
7ff762915000-7ff762926000 r--p 0019c000 08:01 14454595                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libstd-9e3036d1402b84ee.so
7ff762926000-7ff762927000 rw-p 001ad000 08:01 14454595                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libstd-9e3036d1402b84ee.so
7ff762927000-7ff76d774000 r-xp 00000000 08:01 14715272                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dd5bcd4cdc2c6057.so
7ff76d774000-7ff76d973000 ---p 0ae4d000 08:01 14715272                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dd5bcd4cdc2c6057.so
7ff76d973000-7ff76e227000 r--p 0ae4c000 08:01 14715272                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dd5bcd4cdc2c6057.so
7ff76e227000-7ff76e255000 rw-p 0b700000 08:01 14715272                   /checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dd5bcd4cdc2c6057.so
7ff76e255000-7ff76e2cd000 rw-p 00000000 00:00 0 
7ff76e2cd000-7ff76e2f3000 r-xp 00000000 08:01 4388552                    /lib/x86_64-linux-gnu/ld-2.23.so
7ff76e443000-7ff76e487000 rw-p 00000000 00:00 0 
7ff76e4da000-7ff76e4db000 ---p 00000000 00:00 0 
7ff76e4db000-7ff76e4dd000 rw-p 00000000 00:00 0 
7ff76e4dd000-7ff76e4de000 ---p 00000000 00:00 0 
7ff76e4de000-7ff76e4e0000 rw-p 00000000 00:00 0 
7ff76e4e0000-7ff76e4e1000 ---p 00000000 00:00 0 
7ff76e4e1000-7ff76e4e9000 rw-p 00000000 00:00 0 
7ff76e4ea000-7ff76e4eb000 rw-p 00000000 00:00 0 
7ff76e4eb000-7ff76e4ec000 ---p 00000000 00:00 0 
7ff76e4ec000-7ff76e4ee000 rw-p 00000000 00:00 0 
7ff76e4ee000-7ff76e4ef000 ---p 00000000 00:00 0 
7ff76e4ef000-7ff76e4f2000 rw-p 00000000 00:00 0 
7ff76e4f2000-7ff76e4f3000 r--p 00025000 08:01 4388552                    /lib/x86_64-linux-gnu/ld-2.23.so
7ff76e4f3000-7ff76e4f4000 rw-p 00026000 08:01 4388552                    /lib/x86_64-linux-gnu/ld-2.23.so
7ff76e4f4000-7ff76e4f5000 rw-p 00000000 00:00 0 
7ffdbd2de000-7ffdbd301000 rw-p 00000000 00:00 0                          [stack]
7ffdbd397000-7ffdbd39b000 r--p 00000000 00:00 0                          [vvar]
7ffdbd39b000-7ffdbd39d000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
[RUSTC-TIMING] rustc_middle test:false 126.726
rustc exited with signal: 6 (core dumped)

Caused by:
Caused by:
  process didn't exit successfully: `/checkout/obj/build/bootstrap/debug/rustc --crate-name rustc_middle --edition=2021 compiler/rustc_middle/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C embed-bitcode=no -C debuginfo=0 -C debug-assertions=on -Zunstable-options --check-cfg 'values(feature, "rustc-rayon", "rustc-rayon-core", "rustc_use_parallel_compiler")' --check-cfg 'names()' --check-cfg 'values()' -C metadata=8ca6d1bcacfa74c9 -C extra-filename=-8ca6d1bcacfa74c9 --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps --target x86_64-unknown-linux-gnu -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps --extern bitflags=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libbitflags-a0f9ad9e790380e4.rmeta --extern chalk_ir=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libchalk_ir-c4038f8d28adc265.rmeta --extern either=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libeither-924fd47eda5a462d.rmeta --extern gsgdt=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libgsgdt-51b5ee1770562e83.rmeta --extern polonius_engine=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libpolonius_engine-9a6ef456fce62eaa.rmeta --extern rand=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librand-936e149112727ea0.rmeta --extern rand_xoshiro=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librand_xoshiro-0006584bc4389c20.rmeta --extern rustc_apfloat=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_apfloat-0203a9a89213091e.rmeta --extern rustc_arena=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_arena-f866031a36736f3e.rmeta --extern rustc_ast=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_ast-218de71c30f772bb.rmeta --extern rustc_attr=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_attr-962cd8aeb3f008d5.rmeta --extern rustc_data_structures=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_data_structures-8b5816097eb3814b.rmeta --extern rustc_errors=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_errors-383812afd966c626.rmeta --extern rustc_feature=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_feature-0f85b6e8f96c3cf5.rmeta --extern rustc_graphviz=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_graphviz-8307ff5e6e91afd5.rmeta --extern rustc_hir=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_hir-a84ff33154c4aa21.rmeta --extern rustc_index=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_index-f98053a1fb176437.rmeta --extern rustc_macros=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/release/deps/librustc_macros-423d3bca2d735392.so --extern rustc_query_system=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_query_system-f83d419dbbdb58c0.rmeta --extern rustc_serialize=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_serialize-5e340c329fd5bf40.rmeta --extern rustc_session=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_session-441d705622a4bcc3.rmeta --extern rustc_span=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_span-90dce1a288f6cb81.rmeta --extern rustc_target=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_target-a468455e141dc6a8.rmeta --extern rustc_type_ir=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/librustc_type_ir-808e848445d4b650.rmeta --extern smallvec=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libsmallvec-7a7afa36e12edff4.rmeta --extern tracing=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/deps/libtracing-840743c069ba125d.rmeta -Csymbol-mangling-version=v0 -Zunstable-options '--check-cfg=values(bootstrap)' '--check-cfg=values(parallel_compiler)' '--check-cfg=values(no_btreemap_remove_entry)' '--check-cfg=values(crossbeam_loom)' '--check-cfg=values(span_locations)' -Zmacro-backtrace -Clink-args=-Wl,-z,origin '-Clink-args=-Wl,-rpath,$ORIGIN/../lib' -Zunstable-options -Csplit-debuginfo=off -Ztls-model=initial-exec -Zunstable-options '-Wrustc::internal' -Cprefer-dynamic -Z binary-dep-depinfo -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-rustc/x86_64-unknown-linux-gnu/release/build/psm-c5d4bf986938deb6/out` (exit status: 254)
[RUSTC-TIMING] rustc_infer test:false 106.724
[RUSTC-TIMING] rustc_codegen_ssa test:false 92.220
[RUSTC-TIMING] rustc_lint test:false 75.081
[RUSTC-TIMING] rustc_metadata test:false 137.382

@bors
Copy link
Contributor

bors commented Jun 10, 2022

💔 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 Jun 10, 2022
@nnethercote
Copy link
Contributor Author

A double free, huh. But there's no unsafe code in this patch and it doesn't seem related...

@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 Jun 10, 2022
@bors
Copy link
Contributor

bors commented Jun 11, 2022

⌛ Testing commit 3186e31 with merge c845946...

@bors
Copy link
Contributor

bors commented Jun 11, 2022

☀️ Test successful - checks-actions
Approved by: bjorn3
Pushing c845946 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jun 11, 2022
@bors bors merged commit c845946 into rust-lang:master Jun 11, 2022
@rustbot rustbot added this to the 1.63.0 milestone Jun 11, 2022
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (c845946): comparison url.

Instruction count

  • Primary benchmarks: 🎉 relevant improvements found
  • Secondary benchmarks: 🎉 relevant improvements found
mean1 max count2
Regressions 😿
(primary)
N/A N/A 0
Regressions 😿
(secondary)
N/A N/A 0
Improvements 🎉
(primary)
-0.4% -0.9% 82
Improvements 🎉
(secondary)
-0.5% -1.0% 39
All 😿🎉 (primary) -0.4% -0.9% 82

Max RSS (memory usage)

Results
  • Primary benchmarks: no relevant changes found
  • Secondary benchmarks: 😿 relevant regressions found
mean1 max count2
Regressions 😿
(primary)
N/A N/A 0
Regressions 😿
(secondary)
2.2% 2.4% 3
Improvements 🎉
(primary)
N/A N/A 0
Improvements 🎉
(secondary)
N/A N/A 0
All 😿🎉 (primary) N/A N/A 0

Cycles

Results
  • Primary benchmarks: no relevant changes found
  • Secondary benchmarks: 🎉 relevant improvement found
mean1 max count2
Regressions 😿
(primary)
N/A N/A 0
Regressions 😿
(secondary)
N/A N/A 0
Improvements 🎉
(primary)
N/A N/A 0
Improvements 🎉
(secondary)
-2.8% -2.8% 1
All 😿🎉 (primary) N/A N/A 0

If you disagree with this performance assessment, please file an issue in rust-lang/rustc-perf.

@rustbot label: -perf-regression

Footnotes

  1. the arithmetic mean of the percent change 2 3

  2. number of relevant changes 2 3

@nnethercote nnethercote deleted the revert-infallible-encoder branch June 14, 2022 00:59
nnethercote added a commit to nnethercote/rust that referenced this pull request Jun 14, 2022
This avoids the name clash with `rustc_serialize::Encoder` (a trait),
and allows lots qualifiers to be removed and imports to be simplified
(e.g. fewer `as` imports).

(This was previously merged as commit 5 in rust-lang#94732 and then was reverted
in rust-lang#97905 because of a perf regression caused by commit 4 in rust-lang#94732.)
Dylan-DPC added a commit to Dylan-DPC/rust that referenced this pull request Jun 14, 2022
Rename rustc_serialize::opaque::Encoder as MemEncoder.

This avoids the name clash with `rustc_serialize::Encoder` (a trait),
and allows lots qualifiers to be removed and imports to be simplified
(e.g. fewer `as` imports).

(This was previously merged as commit 5 in rust-lang#94732 and then was reverted
in rust-lang#97905 because of a perf regression caused by commit 4 in rust-lang#94732.)

r? `@bjorn3`
JohnTitor added a commit to JohnTitor/rust that referenced this pull request Jun 14, 2022
Rename rustc_serialize::opaque::Encoder as MemEncoder.

This avoids the name clash with `rustc_serialize::Encoder` (a trait),
and allows lots qualifiers to be removed and imports to be simplified
(e.g. fewer `as` imports).

(This was previously merged as commit 5 in rust-lang#94732 and then was reverted
in rust-lang#97905 because of a perf regression caused by commit 4 in rust-lang#94732.)

r? ``@bjorn3``
JohnTitor added a commit to JohnTitor/rust that referenced this pull request Jun 15, 2022
Rename rustc_serialize::opaque::Encoder as MemEncoder.

This avoids the name clash with `rustc_serialize::Encoder` (a trait),
and allows lots qualifiers to be removed and imports to be simplified
(e.g. fewer `as` imports).

(This was previously merged as commit 5 in rust-lang#94732 and then was reverted
in rust-lang#97905 because of a perf regression caused by commit 4 in rust-lang#94732.)

r? ```@bjorn3```
nnethercote added a commit to nnethercote/rust that referenced this pull request Jun 16, 2022
This simplifies things, but requires making `CacheEncoder` non-generic.

(This was previously merged as commit 4 in rust-lang#94732 and then was reverted
in rust-lang#97905 because it caused a perf regression.)
bors added a commit to rust-lang-ci/rust that referenced this pull request Jun 17, 2022
… r=bjorn3

Move `finish` out of the `Encoder` trait.

This simplifies things, but requires making `CacheEncoder` non-generic.

(This was previously merged as commit 4 in rust-lang#94732 and then was reverted
in rust-lang#97905 because it caused a perf regression.)

r? `@ghost`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
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. 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.

6 participants