Add missing visit_base call to bounds fuzzer#9064
Merged
alexreinking merged 1 commit intomainfrom Mar 19, 2026
Merged
Conversation
Also added a minimizer pass. Fixes #9055
alexreinking
approved these changes
Mar 19, 2026
abadams
added a commit
that referenced
this pull request
Mar 19, 2026
After #9064 I had Claude audit the codebase looking for places where it looked like a recursive call to the base class visitor/mutator was missing. If found a few. There was a very subtle one in SplitTuples.cpp (accompanied by a new test) in a visitor which tries to determine which tuple components potentially depend on the old value of another component, but it wasn't recursing into Call args, so tuple components could hide cross-dependencies inside the args of a self-dependency. Region costs isn't recursing into Shuffle nodes, but really it shouldn't see them at all, because this is before vectorization. A Store visitor in handling of atomic vectorization isn't considering predicates, seemingly for no reason. I changed it to just use the base class visit method. Finally, an example custom lowering pass should recursively visit children because it is attempting to ensure something was absent in the IR.
mcourteaux
approved these changes
Mar 19, 2026
Contributor
mcourteaux
left a comment
There was a problem hiding this comment.
Took me a while to understand the minimization algorithm, but now I do! Learned something. 😄
Contributor
|
I quickly want to point out that all the failures in #9055 seemed to have only been produced on ARM workflows. Never have I seen this fail on the x86 workflows, so maybe there is also a CodeGen_ARM issue or an LLVM issue? |
mcourteaux
pushed a commit
that referenced
this pull request
Mar 21, 2026
* Add missing recursive mutations/visits After #9064 I had Claude audit the codebase looking for places where it looked like a recursive call to the base class visitor/mutator was missing. If found a few. There was a very subtle one in SplitTuples.cpp (accompanied by a new test) in a visitor which tries to determine which tuple components potentially depend on the old value of another component, but it wasn't recursing into Call args, so tuple components could hide cross-dependencies inside the args of a self-dependency. Region costs isn't recursing into Shuffle nodes, but really it shouldn't see them at all, because this is before vectorization. A Store visitor in handling of atomic vectorization isn't considering predicates, seemingly for no reason. I changed it to just use the base class visit method. Finally, an example custom lowering pass should recursively visit children because it is attempting to ensure something was absent in the IR. * Actual error message --------- Co-authored-by: Alex Reinking <areinking@adobe.com>
Member
Author
|
They all repro'd fine on x86 for me. The failures don't go anywhere near the backends. |
mcourteaux
reviewed
Mar 21, 2026
| bool found_failure = false; | ||
| if (minimize_failures) { | ||
| std::cerr << "Attempting to minimize failure...\n"; | ||
| mutate_with(test, [&](auto *self, const Expr &e) { |
Contributor
There was a problem hiding this comment.
Can't this be a visitor?
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Also added a minimizer pass.
Fixes #9055