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

Rewrite UnDerefer #112882

Merged
merged 1 commit into from
Jul 3, 2023
Merged

Rewrite UnDerefer #112882

merged 1 commit into from
Jul 3, 2023

Conversation

beepster4096
Copy link
Contributor

Currently, UnDerefer is used by drop elaboration to undo the effects of the Derefer pass. However, it just recreates the original places with derefs in the middle of the projection. Because ProjectionElem::Deref is intended to be removed completely in the future, this will not work forever.

This PR introduces a deref_chain method that returns the places behind DerefTemp locals in a place and rewrites the move path code to use this. In the process, UnDerefer was merged into MovePathLookup. Now that move paths use the same places as in the MIR, the other uses of UnDerefer no longer require it.

See #98145
cc @ouz-a
r? @oli-obk

@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 Jun 21, 2023
@rustbot
Copy link
Collaborator

rustbot commented Jun 21, 2023

Some changes occurred to MIR optimizations

cc @rust-lang/wg-mir-opt

Copy link
Contributor

@oli-obk oli-obk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wonderful! thank you

r=me with a nit

compiler/rustc_mir_dataflow/src/move_paths/mod.rs Outdated Show resolved Hide resolved
@oli-obk
Copy link
Contributor

oli-obk commented Jun 21, 2023

@bors delegate+

@bors
Copy link
Contributor

bors commented Jun 21, 2023

✌️ @drmeepster, you can now approve this pull request!

If @oli-obk told you to "r=me" after making some further change, please make that change, then do @bors r=@oli-obk

@beepster4096
Copy link
Contributor Author

@bors r=@oli-obk

@bors
Copy link
Contributor

bors commented Jun 21, 2023

📌 Commit 09c28605f49dc9d20d20c4547e70f931549ce4e3 has been approved by oli-obk

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 Jun 21, 2023
@bors
Copy link
Contributor

bors commented Jun 22, 2023

⌛ Testing commit 09c28605f49dc9d20d20c4547e70f931549ce4e3 with merge b35d486cc8f86ce64285e26e84efab0792b9994c...

@rust-log-analyzer

This comment has been minimized.

@bors
Copy link
Contributor

bors commented Jun 22, 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 Jun 22, 2023
@oli-obk
Copy link
Contributor

oli-obk commented Jun 22, 2023

looks like there's an infinite recursion somewhere when building cargo. Gonna be a pain to minimize, so I'd be fine with an explanation of the fix even without a test, but if you can reverse engineer a test, all the better.

Probably not an infinite recursion, just a stack overflow, so you can use ensure_sufficient_stack before going into the recursion that is the issue here.

@bors
Copy link
Contributor

bors commented Jun 27, 2023

☔ The latest upstream changes (presumably #112693) made this pull request unmergeable. Please resolve the merge conflicts.

@oli-obk
Copy link
Contributor

oli-obk commented Jun 27, 2023

I've seen the sefault elsewhere on MIPS, too, so it's not this PRs fault.

r=me after a rebase

@beepster4096
Copy link
Contributor Author

@bors r=oli-obk

@bors
Copy link
Contributor

bors commented Jun 30, 2023

📌 Commit b4bd2ae8237937ec102622c6fc370c6b9b4a0ed0 has been approved by oli-obk

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 Jun 30, 2023
@rust-log-analyzer

This comment has been minimized.

@oli-obk
Copy link
Contributor

oli-obk commented Jun 30, 2023

@bors r- needs rustfmt

@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-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jun 30, 2023
@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 Jul 1, 2023
@rust-log-analyzer
Copy link
Collaborator

A job failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)

@oli-obk
Copy link
Contributor

oli-obk commented Jul 2, 2023

@bors retry apple builder timeout

@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 Jul 2, 2023
@bors
Copy link
Contributor

bors commented Jul 2, 2023

⌛ Testing commit 4fbd6d5 with merge 274c66334bf54efc3ac3839fc270c447b5890ade...

@rust-log-analyzer
Copy link
Collaborator

The job dist-mips64el-linux failed! Check out the build log: (web) (plain)

Click to see the possible cause of the failure (guessed by this bot)
   Compiling git2-curl v0.18.0
[RUSTC-TIMING] git2_curl test:false 0.949
[RUSTC-TIMING] git2 test:false 6.819
[RUSTC-TIMING] gix test:false 15.340
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0xd4b163)[0x7fe35190d163]
/lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7fe35084d520]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0x1d26691)[0x7fe3528e8691]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0x1d44445)[0x7fe352906445]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0x1d59b19)[0x7fe35291bb19]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0x1c67a9a)[0x7fe352829a9a]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0x1c73c75)[0x7fe352835c75]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0x1c7510f)[0x7fe35283710f]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0x1d6c242)[0x7fe35292e242]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0x1d6f18a)[0x7fe35293118a]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0x1d715c6)[0x7fe3529335c6]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0x389357f)[0x7fe35445557f]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0x1fb3e64)[0x7fe352b75e64]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0x2f97530)[0x7fe353b59530]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0x2f976a4)[0x7fe353b596a4]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0x2f980a4)[0x7fe353b5a0a4]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0xfebd88)[0x7fe351badd88]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0xfa5571)[0x7fe351b67571]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0xfa96d6)[0x7fe351b6b6d6]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0xecd026)[0x7fe351a8f026]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0xf7c06e)[0x7fe351b3e06e]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/librustc_driver-dcb6cdc0d7ad0347.so(+0xf54212)[0x7fe351b16212]
/checkout/obj/build/x86_64-unknown-linux-gnu/stage1/lib/libstd-025e001bd1fa95df.so(rust_metadata_std_ae54db559e22a89e+0xb3225)[0x7fe350ae9225]
/lib/x86_64-linux-gnu/libc.so.6(+0x94b43)[0x7fe35089fb43]
/lib/x86_64-linux-gnu/libc.so.6(+0x126a00)[0x7fe350931a00]
[RUSTC-TIMING] cargo test:false 61.194
rustc exited with signal: 11 (SIGSEGV) (core dumped)

Caused by:
Caused by:
  process didn't exit successfully: `/checkout/obj/build/bootstrap/debug/rustc --crate-name cargo --edition=2021 src/cargo/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 --cfg 'feature="all-static"' --cfg 'feature="openssl"' --cfg 'feature="vendored-openssl"' -Zunstable-options --check-cfg 'values(feature, "all-static", "openssl", "pretty-env-logger", "pretty_env_logger", "vendored-libgit2", "vendored-openssl")' --check-cfg 'names()' --check-cfg 'values()' -C metadata=01ac5483921a6941 -C extra-filename=-01ac5483921a6941 --out-dir /checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps --target mips64el-unknown-linux-gnuabi64 -C linker=mips64el-unknown-linux-gnu-gcc -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps -L dependency=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/release/deps --extern anyhow=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libanyhow-4451dc31f6485844.rmeta --extern base64=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libbase64-791dbed03c47b9f2.rmeta --extern bytesize=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libbytesize-e571371348097aa3.rmeta --extern cargo_platform=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libcargo_platform-44c95bf774d3996f.rmeta --extern cargo_util=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libcargo_util-c267b5b1d32487ae.rmeta --extern clap=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libclap-f415a32c622a21d1.rmeta --extern crates_io=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libcrates_io-4f42c5e786edef3d.rmeta --extern curl=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libcurl-718f4dbbaf90dee9.rmeta --extern curl_sys=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libcurl_sys-40b1e8a900eabe43.rmeta --extern env_logger=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libenv_logger-b9701cd269b945e5.rmeta --extern filetime=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libfiletime-eb91a35d19847e9f.rmeta --extern flate2=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libflate2-0bdf3497be81c89a.rmeta --extern git2=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libgit2-a61dcfbd4f1f80a1.rmeta --extern git2_curl=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libgit2_curl-bd2a2e551f3d7c4b.rmeta --extern gix=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libgix-3386421a39d2769d.rmeta --extern gix_features_for_configuration_only=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libgix_features-b89c061755ccd5f6.rmeta --extern glob=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libglob-40cb8722a6633475.rmeta --extern hex=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libhex-4113776afd8e4612.rmeta --extern hmac=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libhmac-7c29617bf8d03644.rmeta --extern home=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libhome-697d0e9eff05bc22.rmeta --extern http_auth=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libhttp_auth-54598e3bd1434291.rmeta --extern humantime=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libhumantime-bb147116dc3ebe9d.rmeta --extern ignore=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libignore-7854016d0d25bb0e.rmeta --extern im_rc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libim_rc-5cf7359bb7e3ef3c.rmeta --extern indexmap=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libindexmap-3a744ae04e69cb31.rmeta --extern itertools=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libitertools-9950d45436598bcf.rmeta --extern jobserver=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libjobserver-939222c86cd9c089.rmeta --extern lazycell=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/liblazycell-edac7f5382996efd.rmeta --extern libc=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/liblibc-2b4c21237b5bde07.rmeta --extern libgit2_sys=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/liblibgit2_sys-ab4bec45ec2d4a95.rmeta --extern log=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/liblog-20b018d08e660786.rmeta --extern memchr=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libmemchr-7eea21b4fbc296c3.rmeta --extern opener=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libopener-ad7f6f05db960a19.rmeta --extern openssl=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libopenssl-1cae62c6cf66c795.rmeta --extern os_info=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libos_info-fd856cb12cb29909.rmeta --extern pasetors=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libpasetors-263ceb2d83930aab.rmeta --extern pathdiff=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libpathdiff-bc34f579d5a841e0.rmeta --extern pulldown_cmark=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libpulldown_cmark-f7f07837f3e05664.rmeta --extern rand=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/librand-e8713aa6660336dd.rmeta --extern rustfix=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/librustfix-5cd31c40530f44e9.rmeta --extern semver=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libsemver-0dca9be88e95a132.rmeta --extern serde=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libserde-03fe1222b39543ea.rmeta --extern serde_value=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libserde_value-d2abc82a81aee45d.rmeta --extern serde_ignored=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libserde_ignored-021c7b467dc83ecd.rmeta --extern serde_json=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libserde_json-18f2e3b3ffee6fd2.rmeta --extern sha1=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libsha1-cbf2e1e3d1c7d482.rmeta --extern shell_escape=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libshell_escape-a482273518c2bebe.rmeta --extern strip_ansi_escapes=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libstrip_ansi_escapes-49d97d3baee67c42.rmeta --extern syn=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libsyn-358a90ac83701973.rmeta --extern tar=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libtar-693b2a9547aec12a.rmeta --extern tempfile=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libtempfile-fa2122831f09e2f3.rmeta --extern termcolor=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libtermcolor-d16094320598e655.rmeta --extern time=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libtime-0ab047133fbb6425.rmeta --extern toml=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libtoml-c034d9e0b75f1c64.rmeta --extern toml_edit=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libtoml_edit-1d917689fbb983b2.rmeta --extern unicode_width=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libunicode_width-c2bc4c0b829a98bc.rmeta --extern unicode_xid=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libunicode_xid-0d7fe18a4aff782d.rmeta --extern url=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/liburl-c2c29746a3191f43.rmeta --extern walkdir=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/deps/libwalkdir-897f2fa653b9da5f.rmeta --cfg=windows_raw_dylib -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)' '--check-cfg=values(rustix_use_libc)' '--check-cfg=values(emulate_second_only_system)' '--check-cfg=values(windows_raw_dylib)' -Zdual-proc-macros -Zmacro-backtrace -Clink-args=-Wl,-z,origin '-Clink-args=-Wl,-rpath,$ORIGIN/../lib' -Csplit-debuginfo=off -Z binary-dep-depinfo -L src/backend/linux_raw/arch/outline/release -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/build/curl-sys-e4e5af83bcb13656/out/build -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/build/libnghttp2-sys-c7ae1d552a559c98/out/i/lib -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/build/libz-sys-2d487f748c80b565/out/lib -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/build/libz-sys-2d487f748c80b565/out/lib -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/build/openssl-sys-73c48d660551ff45/out/openssl-build/install/lib -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/build/libgit2-sys-0926a518d52a5f5b/out/build -L native=/checkout/obj/build/x86_64-unknown-linux-gnu/stage1-tools/mips64el-unknown-linux-gnuabi64/release/build/libssh2-sys-513b6c5458030784/out/build` (exit status: 254)

@bors
Copy link
Contributor

bors commented Jul 2, 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 Jul 2, 2023
@beepster4096
Copy link
Contributor Author

@bors retry the mips failure again

@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 Jul 2, 2023
@workingjubilee
Copy link
Member

@bors p=4

@bors
Copy link
Contributor

bors commented Jul 3, 2023

⌛ Testing commit 4fbd6d5 with merge d5a7424...

@bors
Copy link
Contributor

bors commented Jul 3, 2023

☀️ Test successful - checks-actions
Approved by: oli-obk
Pushing d5a7424 to master...

@bors bors added the merged-by-bors This PR was explicitly merged by bors. label Jul 3, 2023
@bors bors merged commit d5a7424 into rust-lang:master Jul 3, 2023
11 checks passed
@rustbot rustbot added this to the 1.72.0 milestone Jul 3, 2023
@rust-timer
Copy link
Collaborator

Finished benchmarking commit (d5a7424): comparison URL.

Overall result: ❌ regressions - ACTION NEEDED

Next Steps: If you can justify the regressions found in this perf run, please indicate this with @rustbot label: +perf-regression-triaged along with sufficient written justification. If you cannot justify the regressions please open an issue or create a new PR that fixes the regressions, add a comment linking to the newly created issue or PR, and then add the perf-regression-triaged label to this PR.

@rustbot label: +perf-regression
cc @rust-lang/wg-compiler-performance

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.7% [0.3%, 1.5%] 26
Regressions ❌
(secondary)
1.1% [0.2%, 1.9%] 21
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.7% [0.3%, 1.5%] 26

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)
3.9% [3.9%, 3.9%] 1
Regressions ❌
(secondary)
2.0% [1.2%, 2.8%] 8
Improvements ✅
(primary)
-4.0% [-4.0%, -4.0%] 1
Improvements ✅
(secondary)
-2.0% [-2.0%, -2.0%] 1
All ❌✅ (primary) -0.1% [-4.0%, 3.9%] 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)
3.2% [1.9%, 4.2%] 10
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) - - 0

Binary size

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

Bootstrap: 667.216s -> 669.334s (0.32%)

@rustbot rustbot added the perf-regression Performance regression. label Jul 3, 2023
@nnethercote
Copy link
Contributor

This looks like a genuine perf regression. @drmeepster, was this expected? Could it be avoided or reduced?

@beepster4096
Copy link
Contributor Author

@nnethercote I think one cause is unnecessary allocations. I've opened #113316, which should improve the situation by allocating each deref chain once and storing it, instead of remaking it from the derefer sidetable every time its needed.

bors added a commit to rust-lang-ci/rust that referenced this pull request Jul 11, 2023
Rewrite `UnDerefer`, again

This PR is intended to improve the perf regression introduced by rust-lang#112882.

`UnDerefer` has been separated out again for borrowck reasons. It was a bit overzealous to remove it in the previous PR.

r? `@oli-obk`
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. perf-regression Performance regression. 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.

8 participants