-
Notifications
You must be signed in to change notification settings - Fork 13.5k
[VPlan] Impl VPlan-based pattern match for ExtendedRed and MulAccRed #113903
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
ElvisWang123
wants to merge
56
commits into
llvm:main
Choose a base branch
from
ElvisWang123:vp-arm-mve-transform
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+901
−192
Open
Changes from all commits
Commits
Show all changes
56 commits
Select commit
Hold shift + click to select a range
33b1f60
[VPlan] Impl VPlan-based pattern match for ExtendedRed and MulAccRed.…
ElvisWang123 68fbd70
Partially support Extended-reduction.
ElvisWang123 c8c9d56
Support MulAccRecipe
ElvisWang123 d29a118
Fix servel errors and update tests.
ElvisWang123 e5b50f7
Refactors
ElvisWang123 cc004ff
Fix typos and update printing test
ElvisWang123 b5445ca
Fold reduce.add(zext(mul(sext(A), sext(B)))) into MulAccRecipe when A…
ElvisWang123 1df91d4
Refactor! Reuse functions from VPReductionRecipe.
ElvisWang123 a0b2f30
Refactor! Add comments and refine new recipes.
ElvisWang123 46928bd
Remove underying instruction dependency.
ElvisWang123 35abf19
Revert "Remove underying instruction dependency."
ElvisWang123 453997e
Remove extended instruction after mul in MulAccRecipe.
ElvisWang123 fa4f476
Refactor.
ElvisWang123 86ad2d8
Clamp the range when the ExtendedReduction or MulAcc cost is invalid.
ElvisWang123 594f9e4
Try to not depend on underlying ext/mul instructions and preserve fla…
ElvisWang123 52369d0
Update testcase and fix reduction cost.
ElvisWang123 abc08f3
!fixup. Rebase to upstream `prepareToExecute()` implementation.
ElvisWang123 729a70e
Move VPReductionRecipe inherite from VPRecipeWithIRFlags.
ElvisWang123 ea58282
Only create VPMulAcc/VPExtendedReduction recipe when beneficial. NFC
ElvisWang123 1c22ce2
Merge branch 'main' into vp-arm-mve-transform
ElvisWang123 a987456
!fixup use `auto`
ElvisWang123 6c434c7
!fixup VPReductionRecipe unit tests.
ElvisWang123 f4b1b78
!fixup migrate tryTo* to VPlanTransforms
ElvisWang123 bffcac5
Implement clone() and add some docs.
ElvisWang123 da705f1
Update comments.
ElvisWang123 1dc279e
fix-ReductionEVLRecipe query underlyingInstr().
ElvisWang123 20ea82e
Merge branch 'main' into vp-arm-mve-transform
ElvisWang123 90f9ffa
Update after merge.
ElvisWang123 99512fe
Address comments and split off abstract recipes creation from adjustR…
ElvisWang123 2e4014a
!fixup using foldTailWithEVL.
ElvisWang123 38dd924
!fixup, remove extra debugLoc and move check of EVL out of transforms.
ElvisWang123 602a5e4
Merge branch 'main' into vp-arm-mve-transform
ElvisWang123 1939d44
Update after merge main.
ElvisWang123 2ee6e76
Merge branch 'main' into vp-arm-mve-transform
ElvisWang123 d584fc1
Update after merge. Using runPass::().
ElvisWang123 21b33e6
!fixup, Remove unused check and functions.
ElvisWang123 ae371e5
Merge branch 'main' into vp-arm-mve-transform
ElvisWang123 0d7b7f3
!fixup; Address comments.
ElvisWang123 e12bd04
!fixup, Add Mul cost to prevent FMuladd Reduction cost misaligned.
ElvisWang123 4906637
!Fixup, typo.
ElvisWang123 ca5db10
Merge branch 'main' into vp-arm-mve-transform
ElvisWang123 2fbdc7c
!fixup, Address comments and fix VPReductionRecipe::computeCost
ElvisWang123 38d83bf
Merge branch 'main' into vp-arm-mve-transform
ElvisWang123 3e2acad
Merge branch 'main' into vp-arm-mve-transform
ElvisWang123 d2a5a43
!fixup, Update after merge, using std::array.
ElvisWang123 484f9cc
fixup, formatting.
ElvisWang123 cd86af4
!fixup, address comments.
ElvisWang123 84f8a46
Merge branch 'main' into vp-arm-mve-transform
ElvisWang123 36e1032
!fixup, formatting and address comments.
ElvisWang123 2483a29
!fixup, Update inferScalarType and not clear the VF of plan.
ElvisWang123 56dcd90
!fixup, address comments.
ElvisWang123 26d938a
Merge branch 'main' into vp-arm-mve-transform
ElvisWang123 b32538f
!fixup, address comments.
ElvisWang123 fd539f8
!fixup, address comments and using `transferFlags()` to copy nneg.
ElvisWang123 71c7401
!fixup, address comments.
ElvisWang123 7da7983
!fixup, Add new recipes to mayReadWriteMemory.
ElvisWang123 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
Oops, something went wrong.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we need to special case this for EVL? Shouldn't the cost-model tell us that the combined reductions aren't profitable?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not for the cost model issue but the EVL-recipe generation is not implemented yet.
Abstract recipes will transform to concrete recipes after EVL transforms. And we need to generate VPReductionEVLRecipe when convert to the concrete recipes.