Skip to content

Conversation

@jcohen-apple
Copy link

This pass is designed to increase ILP by performing accumulation into multiple registers. It currently supports only the S/UABAL accumulation instruction, but will be extended to support additional instructions.
This is pattern appears often in code written using intrinsics, which get linearized in IR form be the Reassociate Pass, but unlike basic instructions such as add/mult/etc, do not have corresponding MachineCombiner patterns aimed at restoring the tree which is linearized in the earlier pass.

rdar://78517468

@jcohen-apple jcohen-apple requested a review from a team as a code owner March 31, 2025 08:02
@jcohen-apple
Copy link
Author

@swift-ci test

…nstructions into a tree (llvm#132728)

This pass is designed to increase ILP by performing accumulation into
multiple registers. It currently supports only the S/UABAL accumulation
instruction, but can be extended to support additional instructions.

Reland of  llvm#126060 which was reverted due to a conflict with llvm#131272.
@jcohen-apple jcohen-apple force-pushed the joncoh/aarch-acc-reassoc-swiftlang branch from a767a5b to 969f9fa Compare March 31, 2025 08:07
@jcohen-apple
Copy link
Author

@swift-ci test

@guy-david
Copy link

@swift-ci test llvm

Copy link

@guy-david guy-david left a comment

Choose a reason for hiding this comment

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

LGTM.

@jcohen-apple jcohen-apple merged commit ed03b9d into swiftlang:stable/20240723 Apr 3, 2025
5 checks passed
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