PRE implementation in LLVM

Hello everyone,

I am Aradhya Biswas, currently in senior year of my undergraduate studies in the field of Computer Science and Engineering at Indian Institute of Technology Hyderabad (IITH).

I was first introduced to LLVM about a year ago in the course “Principles of Compiler Design” (http://www.iith.ac.in/~ramakrishna/Compilers-Aug14/) at IITH. Since the introduction, I have used LLVM for a multitude of my course assignments and mini-projects.

While studying the compiler optimization theory, LLVM always served as best tool for experimenting. But recently when I came across the concept of Partial Redundancy Elimination, I could not find any exclusive implementation of it in the present LLVM framework. On digging a little deeper, I could find that the implementation of GVN subsumes the load PRE and a specific case (namely, the diamond case) of scalar PRE in the present LLVM framework.

I had two question in this regards :

  1. Where can I find the theory related to load PRE implemented here (line no. 01517) ?
  2. Are there any other implementation of PRE in the present LLVM framework ?
    Thanks,
    Aradhya Biswas
    Final Year Undergraduate Student,
    Department of Computer Science and Engineering,
    Indian Institute of Technology Hyderabad

Hi all,

This email is to serve as a reminder in regards to my previous email querying about the present implementation of PRE in LLVM.

In case the present scope of PRE in LLVM is as I mentioned my previous email, which is fairly restricted, than I would like to take it up as a GSoC project to extend the scope of PRE in LLVM.