cfallin requested alexcrichton for a review on PR #4038.
cfallin requested fitzgen for a review on PR #4038.
cfallin opened PR #4038 from machbuffer-remove-slow-validation
to main
:
Following the merge of regalloc2 support, this became slower because we
are stricter about the critical-edge invariant, generating a separate
edge block for every out-edge even if two or more out-edges go to the
same successor (this is significant in cases ofbr_table
with many
entries having the same target block, for example).Many of those edge blocks are empty and end up collapsed by the
MachBuffer, which leads to a large set of aliased labels.The invariant validation will dutifully iterate over all the data
structures at every step, validating all of our conditions. But this
gets way slower in the new context, to the point that we'll probably
have some fuzz timeouts.This was pointed out in [1] but I missed removing this in #3989. Given
thatMachBuffer
has been around for nearly two years now, has been
fuzzed continuously with the invariant validation for that time, and
also has a correctness proof in the comments, it's probably reasonable
to remove this high (recently increased) cost from the fuzzing-specific
compilation configuration.[1]
https://github.com/bytecodealliance/wasmtime/pull/3989#discussion_r847712263<!--
Please ensure that the following steps are all taken care of before submitting
the PR.
[ ] This has been discussed in issue #..., or if not, please tell us why
here.[ ] A short description of what this does, why it is needed; if the
description becomes long, the matter should probably be discussed in an issue
first.[ ] This PR contains test cases, if meaningful.
- [ ] A reviewer from the core maintainer team has been assigned for this PR.
If you don't know who could review this, please indicate so. The list of
suggested reviewers on the right can help you.Please ensure all communication adheres to the code of conduct.
-->
alexcrichton submitted PR review.
alexcrichton merged PR #4038.
Last updated: Nov 22 2024 at 17:03 UTC