This is an archive of the discontinued LLVM Phabricator instance.

SLPVectorizer: limit the number of alias checks to reduce the runtime.
Needs ReviewPublic

Authored by eeckstein on Jan 15 2015, 7:47 AM.

Details

Reviewers
aschwaighofer
Summary

Beside caching the alias results, this is another step to reduce the SLPVectorizer's runtime.
In case of blocks with many memory-accessing instructions, alias checking can take lot of time (because calculating the memory dependencies has quadratic complexity).
I chose a limit which resulted in no changes when running the benchmarks.

Diff Detail

Event Timeline

eeckstein updated this revision to Diff 18229.Jan 15 2015, 7:47 AM
eeckstein retitled this revision from to SLPVectorizer: limit the number of alias checks to reduce the runtime..
eeckstein updated this object.
eeckstein edited the test plan for this revision. (Show Details)
eeckstein added a reviewer: aschwaighofer.
eeckstein added a subscriber: Unknown Object (MLST).
aschwaighofer edited edge metadata.Jan 15 2015, 8:00 AM

I think that this should be a global at the top of the file so that it is more visible to folks would want to experiment with thresholds.

Maybe we could also make the name reflect that is only counting the failed alias checks: FailedAliasChecksLimit or so.

Otherwise, LGTM.

eeckstein updated this revision to Diff 18230.Jan 15 2015, 8:32 AM
eeckstein edited edge metadata.

Arnold, thanks for your comments.
I renamed the const to "AliasedCheckLimit"

Committed in r226439