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

Downstream dependency making asm not compile in release mode #43

Open
jonathanpwang opened this issue Nov 3, 2023 · 1 comment
Open

Comments

@jonathanpwang
Copy link

jonathanpwang commented Nov 3, 2023

In the past week, some downstream dependency (likely downstream of revm) is causing branch release-0.1.16-rc0 to not compile when the asm feature of halo2curves is on.

error: inline assembly requires more registers than available

This only happens in release mode when lto = <thin or fat> is turned on, because the LLVM compiler will now optimize the assembly from halo2curves across codebases. Somehow this leads to problems.

Running cargo bisect-rustc, we can pinpoint where in rustc the problem lies, but I have no idea what the real reason is:

cargo bisect-rustc --script=./test.sh --start=2023-04-01 --end=2023-08-11
checking the start range to find a passing nightly
installing nightly-2023-04-01
rust-std-nightly-x86_64-unknown-linux-gnu: 27.91 MB / 27.91 MB [=========================================================] 100.00 % 10.93 MB/s testing...
RESULT: nightly-2023-04-01, ===> No
uninstalling nightly-2023-04-01

checking the end range to verify it does not pass
installing nightly-2023-08-11
rust-std-nightly-x86_64-unknown-linux-gnu: 26.17 MB / 26.17 MB [=========================================================] 100.00 % 10.72 MB/s testing...
RESULT: nightly-2023-08-11, ===> Yes
uninstalling nightly-2023-08-11

66 versions remaining to test after this (roughly 7 steps)
installing nightly-2023-06-06
rust-std-nightly-x86_64-unknown-linux-gnu: 25.93 MB / 25.93 MB [==========================================================] 100.00 % 9.89 MB/s testing...
RESULT: nightly-2023-06-06, ===> No
uninstalling nightly-2023-06-06

33 versions remaining to test after this (roughly 6 steps)
installing nightly-2023-07-09
rust-std-nightly-x86_64-unknown-linux-gnu: 26.15 MB / 26.15 MB [==========================================================] 100.00 % 9.90 MB/s testing...
RESULT: nightly-2023-07-09, ===> Yes
uninstalling nightly-2023-07-09

17 versions remaining to test after this (roughly 5 steps)
installing nightly-2023-06-22
rust-std-nightly-x86_64-unknown-linux-gnu: 26.39 MB / 26.39 MB [==========================================================] 100.00 % 9.94 MB/s testing...
RESULT: nightly-2023-06-22, ===> Yes
uninstalling nightly-2023-06-22

8 versions remaining to test after this (roughly 4 steps)
installing nightly-2023-06-14
rust-std-nightly-x86_64-unknown-linux-gnu: 26.56 MB / 26.56 MB [==========================================================] 100.00 % 9.97 MB/s testing...
RESULT: nightly-2023-06-14, ===> Yes
uninstalling nightly-2023-06-14

4 versions remaining to test after this (roughly 3 steps)
installing nightly-2023-06-10
rust-std-nightly-x86_64-unknown-linux-gnu: 25.97 MB / 25.97 MB [==========================================================] 100.00 % 9.93 MB/s testing...
RESULT: nightly-2023-06-10, ===> Yes
uninstalling nightly-2023-06-10

2 versions remaining to test after this (roughly 2 steps)
installing nightly-2023-06-08
rust-std-nightly-x86_64-unknown-linux-gnu: 26.04 MB / 26.04 MB [==========================================================] 100.00 % 9.92 MB/s testing...
RESULT: nightly-2023-06-08, ===> Yes
uninstalling nightly-2023-06-08

1 versions remaining to test after this (roughly 1 steps)
installing nightly-2023-06-07
rust-std-nightly-x86_64-unknown-linux-gnu: 25.88 MB / 25.88 MB [==========================================================] 100.00 % 9.92 MB/s testing...
RESULT: nightly-2023-06-07, ===> Yes
uninstalling nightly-2023-06-07

searched toolchains nightly-2023-04-01 through nightly-2023-08-11


********************************************************************************
Regression in nightly-2023-06-07
********************************************************************************

fetching https://static.rust-lang.org/dist/2023-06-06/channel-rust-nightly-git-commit-hash.txt
nightly manifest 2023-06-06: 40 B / 40 B [==============================================================================] 100.00 % 694.47 KB/s converted 2023-06-06 to e6d4725c76f3b526c74454bc51afdf6daf133506
fetching https://static.rust-lang.org/dist/2023-06-07/channel-rust-nightly-git-commit-hash.txt
nightly manifest 2023-06-07: 40 B / 40 B [================================================================================] 100.00 % 1.57 MB/s converted 2023-06-07 to b2b34bd83192c3d16c88655158f7d8d612513e88
looking for regression commit between 2023-06-06 and 2023-06-07
cloning rust repository
fetching (via local git) commits from e6d4725c76f3b526c74454bc51afdf6daf133506 to b2b34bd83192c3d16c88655158f7d8d612513e88
opening existing repository at "rust.git"
Found origin remote under name `origin`
refreshing repository at "rust.git"
looking up first commit
looking up second commit
checking that commits are by bors and thus have ci artifacts...
finding bors merge commits
found 5 bors merge commits in the specified range
  commit[0] 2023-06-05: Auto merge of #112071 - WaffleLapkin:group-rfcs-tests, r=oli-obk
  commit[1] 2023-06-05: Auto merge of #112324 - matthiaskrgr:rollup-qscmi3c, r=matthiaskrgr
  commit[2] 2023-06-06: Auto merge of #111999 - scottmcm:codegen-less-memcpy, r=compiler-errors
  commit[3] 2023-06-06: Auto merge of #112312 - nikic:llvm-16.0.5, r=cuviper
  commit[4] 2023-06-06: Auto merge of #112344 - matthiaskrgr:rollup-tswr83e, r=matthiaskrgr
validated commits found, specifying toolchains

checking the start range to verify it passes
installing e6d4725c76f3b526c74454bc51afdf6daf133506
rust-std-nightly-x86_64-unknown-linux-gnu: 26.67 MB / 26.67 MB [=========================================================] 100.00 % 11.24 MB/s testing...
RESULT: e6d4725c76f3b526c74454bc51afdf6daf133506, ===> No
uninstalling e6d4725c76f3b526c74454bc51afdf6daf133506

checking the end range to verify it does not pass
installing b2b34bd83192c3d16c88655158f7d8d612513e88
rust-std-nightly-x86_64-unknown-linux-gnu: 26.68 MB / 26.68 MB [=========================================================] 100.00 % 11.24 MB/s testing...
RESULT: b2b34bd83192c3d16c88655158f7d8d612513e88, ===> Yes
uninstalling b2b34bd83192c3d16c88655158f7d8d612513e88

2 versions remaining to test after this (roughly 2 steps)
installing fd9bf594366e73efb1a26a023e0b4de8eff82b94
rust-std-nightly-x86_64-unknown-linux-gnu: 26.68 MB / 26.68 MB [======================================================] 100.00 % 11.22 MB/s 0s testing...
RESULT: fd9bf594366e73efb1a26a023e0b4de8eff82b94, ===> Yes
uninstalling fd9bf594366e73efb1a26a023e0b4de8eff82b94

1 versions remaining to test after this (roughly 1 steps)
installing adc719d7147d5e2578ce08e0b4504be44650256e
rust-std-nightly-x86_64-unknown-linux-gnu: 26.65 MB / 26.65 MB [=========================================================] 100.00 % 11.23 MB/s testing...
RESULT: adc719d7147d5e2578ce08e0b4504be44650256e, ===> No
uninstalling adc719d7147d5e2578ce08e0b4504be44650256e

searched toolchains e6d4725c76f3b526c74454bc51afdf6daf133506 through b2b34bd83192c3d16c88655158f7d8d612513e88


********************************************************************************
Regression in fd9bf594366e73efb1a26a023e0b4de8eff82b94
********************************************************************************

Attempting to search unrolled perf builds
ERROR: couldn't find perf build comment
==================================================================================
= Please file this regression report on the rust-lang/rust GitHub repository     =
=        New issue: https://github.com/rust-lang/rust/issues/new                 =
=     Known issues: https://github.com/rust-lang/rust/issues                     =
= Copy and paste the text below into the issue report thread.  Thanks!           =
==================================================================================

searched nightlies: from nightly-2023-04-01 to nightly-2023-08-11
regressed nightly: nightly-2023-06-07
searched commit range: https://github.com/rust-lang/rust/compare/e6d4725c76f3b526c74454bc51afdf6daf133506...b2b34bd83192c3d16c88655158f7d8d612513e88
regressed commit: https://github.com/rust-lang/rust/commit/fd9bf594366e73efb1a26a023e0b4de8eff82b94
bisected with cargo-bisect-rustc v0.6.7

Host triple: x86_64-unknown-linux-gnu


Reproduce with:
```bash
cargo bisect-rustc --script=./test.sh --start=2023-04-01 --end=2023-08-11

The test.sh is:

#!/bin/sh
cargo t --features "halo2-base/asm" --release -- --list
@jonathanpwang
Copy link
Author

Pinned down the cause to the be recent upgrade of https://crates.io/crates/ruint from v1.10 to v1.11, but I have no idea why that causes LLVM / rustc issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant