[GSoC] Improvent of PRE in LLVM compiler

Greetings,

(I am reposting this email of mine, as I was informed that emails from the domain ‘iith.ac.in’ are sometimes being marked as spam)

I am Aradhya Biswas, final year student of Computer Science and Engineering at Indian Institute of technology Hyderabad (IITH), and as mentioned in my previous email on the LLVM dev mailing list, I am interested to work towards the improvement of PRE in the LLVM.

Through this email I would like to sincerely request for comments and views regarding my GSoC 2015 proposal [link] in this regard.

My current proposal deals with only with completing the PRE implementation. But, I understand from this earlier discussion that Dan Berlin is working on rewriting the GVN module of LLVM in his repository.

In LLVM, as the GVN and PRE are effectively one module, I would like to like to have the community’s feedback on the possibility of extending my PRE proposal into one that also works towards a better GVN-PRE module by working on the GVN as well.

Thanks,
Aradhya Biswas
Final Year Undergraduate Student,
Department of Computer Science and Engineering,
Indian Institute of Technology Hyderabad

So, one important detail:

Scalar PRE is diamond based, load PRE is not.
Load PRE is a pretty much full-on sparse PRE.

Hi Daniel,

Thank you for pointing out these out. I had a query in this regard.

Is the scalar PRE implementation in LLVM, found in GVN.cpp, a heuristic or a general algorithm partially implemented ? If it is a partial implementation of a general algorithm, can you please point me to the source/literature ?