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

Update rust toolchain to 2023-04-29 #2452

Merged
merged 6 commits into from
May 19, 2023

Conversation

zhassan-aws
Copy link
Contributor

@zhassan-aws zhassan-aws commented May 18, 2023

Description of changes:

Update toolchain to 2023-04-29. Relevant PRs that required changes:

Removal of WithOptConstParam: rust-lang/rust#96840
Moving of IndexVec into its own module: rust-lang/rust#110539
Hashes use their own type instead of u64: rust-lang/rust#110083
New OffsetOf variant in rustc_middle::mir::NullOp: rust-lang/rust#106934
Lowering of offset intrinsic to BinOp::Offset: rust-lang/rust#110822

Also had to add an isize suffix to the second argument to the offset intrinsic due to rust-lang/rust#111699.

Resolved issues:

Towards #2451

Related RFC:

Optional #ISSUE-NUMBER.

Call-outs:

Testing:

  • How is this change tested? Current regressions

  • Is this a refactor change? No

Checklist

  • Each commit message has a non-empty body, explaining why the change was made
  • Methods or procedures are documented
  • Regression or unit tests are included, or existing tests cover the modified code
  • My PR is restricted to a single feature or bugfix

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses.

@zhassan-aws
Copy link
Contributor Author

Keeping this as a draft because there are still a few failures in the expected test suite. Also, the codegen_firecracker.sh regression doesn't terminate after running for more than 10 minutes.

@zhassan-aws
Copy link
Contributor Author

All regressions now pass except for two perf regressions that are running out of memory 😞

tests/perf/btreeset/insert_multi
tests/perf/btreeset/insert_same

@zhassan-aws
Copy link
Contributor Author

On one of the BTreeSet performance tests (tests/perf/btreeset/insert_any), the number of nondets in CBMC's --program_only output increased significantly with the toolchain update:

$ grep -c nondet before.po 
117
$ grep -c nondet after.po 
692

The size of the program expression also increased > 5X:

$ grep "program expression" before.po 
size of program expression: 15889 steps
$ grep "program expression" after.po 
size of program expression: 87287 steps

@tautschnig is there a way to pinpoint what is causing the difference?

@zhassan-aws
Copy link
Contributor Author

I narrowed it down to a change that happened between the 2023-04-29 and 2023-04-30 nightly toolchains: just changing the toolchain to 2023-04-29 in this PR restores performance on those btreeset tests.

@zhassan-aws zhassan-aws changed the title Update rust toolchain to 2023-04-30 Update rust toolchain to 2023-04-29 May 19, 2023
@zhassan-aws zhassan-aws marked this pull request as ready for review May 19, 2023 05:30
@zhassan-aws zhassan-aws requested a review from a team as a code owner May 19, 2023 05:30
@zhassan-aws
Copy link
Contributor Author

For the sake of making progress on the toolchain updates, I've backtracked the toolchain date by 1 day to 2023-04-29 to avoid the performance regression that occurs with the 2023-04-30 toolchain.

The PR is now ready for review.

Copy link
Contributor

@celinval celinval left a comment

Choose a reason for hiding this comment

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

Thanks Zyad! I just have questions about the changes to offset implementation.

@zhassan-aws zhassan-aws enabled auto-merge (squash) May 19, 2023 18:15
@zhassan-aws zhassan-aws merged commit 08659d3 into model-checking:main May 19, 2023
@zhassan-aws zhassan-aws deleted the toolchain-2023-04-30 branch May 19, 2023 21:53
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

Successfully merging this pull request may close these issues.

2 participants