Skip to content

[xls][passes] Perform bulk adder and subtractor splits in#4639

Draft
copybara-service[bot] wants to merge 1 commit into
mainfrom
test_953631634
Draft

[xls][passes] Perform bulk adder and subtractor splits in#4639
copybara-service[bot] wants to merge 1 commit into
mainfrom
test_953631634

Conversation

@copybara-service

Copy link
Copy Markdown

[xls][passes] Perform bulk adder and subtractor splits in
strength reduction.

Previously, StrengthReductionPass split adders and subtractors at a
single non-propagating carry/borrow bit per pass iteration. For
operations with large bit widths (e.g., bits[1593]), chipping away
narrow bit slices iteratively caused hundreds of fixed-point
optimization pass cycles, resulting in fuzzer timeouts.

This change updates adder and subtractor strength reduction to collect
all non-propagating carry/borrow split points in a single pass and split
the binary operation into multiple sub-adders/sub-subtractors
simultaneously via SplitBinOp.

Fixes #4411

strength reduction.

Previously, StrengthReductionPass split adders and subtractors at a
single non-propagating carry/borrow bit per pass iteration. For
operations with large bit widths (e.g., bits[1593]), chipping away
narrow bit slices iteratively caused hundreds of fixed-point
optimization pass cycles, resulting in fuzzer timeouts.

This change updates adder and subtractor strength reduction to collect
all non-propagating carry/borrow split points in a single pass and split
the binary operation into multiple sub-adders/sub-subtractors
simultaneously via SplitBinOp.

Fixes #4411

PiperOrigin-RevId: 953631634
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.

opt hangs on large addition w/ passes_bisect_limit>1280

1 participant