GSoC - feedback for Software Prefetching in LLVM

Hi,

As the student application portal opens in a day for GSoC 2015, I want to apply for a project in order to contribute to LLVM community by enhancing Software Prefetching in LLVM.

I have been studying the feasibility and significance of software prefetching in modern processors.
I have looked into the current implementation of the same in LLVM for PowerPC backend by Hal Finkel [1] and am in contact with him in an introductory level. Currently I am working on his suggestions to fine tune my proposal.
I am planning to enhance the current implementation for multiple architectures and also want to extend support to recursive data structures [2].
I feel that this is doable in the summer which has the potential to improve performance for scientific applications.
I would like to get the feedback from the community for the topic as a whole and considering it as part of GSoC.

[1] http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20121231/160778.html
[2] Chi-Keung Luk and Todd C. Mowry. 1996. Compiler-based prefetching for recursive data structures. SIGOPS Oper. Syst. Rev. 30, 5 (September 1996), 222-233. DOI=10.1145/248208.237190 http://doi.acm.org/10.1145/248208.237190

From: "Utpal Bora" <cs14mtech11017@iith.ac.in>
To: llvmdev@cs.uiuc.edu
Sent: Sunday, March 15, 2015 11:24:11 AM
Subject: [LLVMdev] GSoC - feedback for Software Prefetching in LLVM

Hi,

As the student application portal opens in a day for GSoC 2015, I
want to apply for a project in order to contribute to LLVM community
by enhancing Software Prefetching in LLVM.

I have been studying the feasibility and significance of software
prefetching in modern processors.
I have looked into the current implementation of the same in LLVM for
PowerPC backend by Hal Finkel [1] and am in contact with him in an
introductory level.

Specifically, what I advised him was that, in light of the demonstrated benefits of software prefetching in some cases on some architectures, he needed to argue that he can capture those benefits, using a cost model generic enough to cover many targets, with an accuracy sufficient to avoid introducing significant regressions. In short, given that modern hardware prefetchers are pretty good (at least at basic patterns), he'll need to be clear regarding from where the benefit might come. If anyone has other advice (or disagrees with mine), please jump in.

Currently I am working on his suggestions to
fine tune my proposal.
I am planning to enhance the current implementation for multiple
architectures and also want to extend support to recursive data
structures [2].
I feel that this is doable in the summer which has the potential to
improve performance for scientific applications.
I would like to get the feedback from the community for the topic as
a whole and considering it as part of GSoC.

Uptal, given that experience with this is not widespread, I think that providing a few specific examples might help to stimulate discussion.

-Hal