Skip to content

Fuzzer: Increase generation of tuple-valued wide arithmetic - #9203

Open
tlively wants to merge 1 commit into
fuzzer-extern-convert-anyfrom
fuzzer-wide-arithmetic
Open

tlively wants to merge 1 commit into
fuzzer-extern-convert-anyfrom
fuzzer-wide-arithmetic

Conversation

@tlively

@tlively tlively commented Oct 3, 2026

Copy link
Copy Markdown
Member

For i64 pair tuples in _makeConcrete, add makeWideIntExpression with
VeryImportant weight (requiring Multivalue as well as WideArithmetic)
alongside makeTupleMake instead of replacing it half the time with
default weight. This increases generation of unextracted (i64, i64)
wide arithmetic expressions by ~4.2x.

For i64 pair tuples in _makeConcrete, add makeWideIntExpression with
VeryImportant weight (requiring Multivalue as well as WideArithmetic)
alongside makeTupleMake instead of replacing it half the time with
default weight. This increases generation of unextracted (i64, i64)
wide arithmetic expressions by ~4.2x.
@tlively
tlively requested a review from a team as a code owner October 3, 2026 18:43
@tlively
tlively requested review from kripken and removed request for a team October 3, 2026 18:43
options.add(FeatureSet::Multivalue, &Self::makeTupleMake);
options.add(FeatureSet::Multivalue, &Self::makeTupleMake);
if (type == Types::getI64Pair()) {
options.add(FeatureSet::WideArithmetic | FeatureSet::Multivalue,

@kripken kripken Oct 5, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
options.add(FeatureSet::WideArithmetic | FeatureSet::Multivalue,
// Use VeryImportant here, as it is rare to have i64 pairs - when we finally have one, be likely to handle it.
options.add(FeatureSet::WideArithmetic | FeatureSet::Multivalue,

Is this indeed the motivation?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Yes, inasmuch as increasing the frequency of wide arithmetic instructions is the motivation, although I think getting rid of the unnecessary oneIn(2) above is the more important change from a code consistency perspective.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

sgtm

@kripken kripken Oct 5, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(imo feels worth a comment as otherwise it may not be clear to a reader of the source)

@kripken kripken left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm otherwise

options.add(FeatureSet::Multivalue, &Self::makeTupleMake);
options.add(FeatureSet::Multivalue, &Self::makeTupleMake);
if (type == Types::getI64Pair()) {
options.add(FeatureSet::WideArithmetic | FeatureSet::Multivalue,

@kripken kripken Oct 5, 2026 •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

(imo feels worth a comment as otherwise it may not be clear to a reader of the source)

This branch has not been deployed

No deployments
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