This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Cache line size and PredictableSelectIsExpensive for Vulcan
ClosedPublic

Authored by pgode on Jul 17 2016, 6:14 AM.

Diff Detail

Repository
rL LLVM

Event Timeline

pgode updated this revision to Diff 64250.Jul 17 2016, 6:14 AM
pgode retitled this revision from to [AArch64] Cache line size and PredictableSelectIsExpensive for Vulcan.
pgode updated this object.
MatzeB accepted this revision.Jul 18 2016, 3:32 PM
MatzeB edited edge metadata.

I can't comment on whether this is the right thing for Vulcan (not sure if any of the reviewers can). The changes to the backend are obviously fine.

This revision is now accepted and ready to land.Jul 18 2016, 3:32 PM
flyingforyou added inline comments.
lib/Target/AArch64/AArch64Subtarget.cpp
78 ↗(On Diff #64250)

CacheLineSize is only used for LoopDataPrefetch. Is there any reason that you define this vaule only?

Without defining PrefetchDistance, MinPrefetchStride, MaxPrefetchIterationsAhead, it's not worth it right now.

pgode added inline comments.Jul 19 2016, 6:44 AM
lib/Target/AArch64/AArch64Subtarget.cpp
78 ↗(On Diff #64250)

I agree that apart from CacheLineSize, we need the other parameters for LoopDataPrefetch to be effective.
We are still working on defining other values. So I think, I better ignore this change from the patch & submit it as separate patch when I have other parameters as well.

The 2nd change i.e.PredictableSelectIsExpensive, still hold true for Vulcan. So, I am updating the diff.
Please suggest, if this change is fine.

pgode updated this revision to Diff 64484.Jul 19 2016, 6:46 AM
pgode edited edge metadata.

Removed the CacheLineSize (set to 64) for Vulcan, as three other parameters are required for LoopDataPrefetch to be effective.
Will include CacheLineSize & 3 other parameters in another patch, after they are finalized.

mcrosier accepted this revision.Jul 19 2016, 7:19 AM
mcrosier added a reviewer: mcrosier.
mcrosier added a subscriber: mcrosier.

LGTM.

This revision was automatically updated to reflect the committed changes.

Sorry, yep I can't see any problem with putting it on 3.9.