This is an archive of the discontinued LLVM Phabricator instance.

[llvm] Allow strided acceses to be grouped together for memory checks in loop accesses analysis
Needs ReviewPublic

Authored by SBallantyne on Apr 4 2023, 9:20 AM.

Details

Summary

This patch changes the groupChecks method to allow strided loop access over the same object to be grouped together.

This is targeting a particular issue from flang where certain loops would generate unneeded memory checks that lead to the generated vectorised code to never be taken, resulting in heavy performance losses.

Originally written by the co-authors.
Co-authored-by: David Sherwood <david.sherwood@arm.com>
Co-authored-by: Maciej Gabka <maciej.gabka@arm.com>

Diff Detail

Unit TestsFailed

Event Timeline

SBallantyne created this revision.Apr 4 2023, 9:20 AM
Herald added a project: Restricted Project. · View Herald TranscriptApr 4 2023, 9:20 AM
Herald added a subscriber: hiraditya. · View Herald Transcript
SBallantyne requested review of this revision.Apr 4 2023, 9:20 AM
SBallantyne edited the summary of this revision. (Show Details)Apr 4 2023, 9:23 AM
SBallantyne added a reviewer: kiranchandramohan.

Add opt test

SBallantyne retitled this revision from WIP [llvm] Allow strided acceses to be grouped together for memory checks in loop accesses analysis to [llvm] Allow strided acceses to be grouped together for memory checks in loop accesses analysis.Apr 6 2023, 6:43 AM
kiranchandramohan edited the summary of this revision. (Show Details)Apr 6 2023, 7:41 AM