GSOC: Enhance the Dependence Analysis Infrastructure

Hello there!

I am a Ph.D. student and I would like to contribute to LLVM+GSoC by improving the Data Dependence Analysis infrastructure. Specifically, I would like to continue the work that Preston Brigss did [1, 2] on data dependence analysis up to a point to make it reliable [3,4,5] and usable for the other parts of the LLVM [6, 7, …].

I envision a work plan consisting of at least two major parts:

  1. Drop the use of GEP’s in favor of SCEV; Rely on the delinearization framework to attack multidimensional accesses; Create new test cases;

  2. Implement an interface to let users execute queries on a program dependence graph (e.g., check for control/data dependence between instructions, obtain strong connected components, dependence matrices, etc.);

If you found that a project along these lines is of the community interest and fits as a GSoC project please let me know so that I can write a detailed proposal/work plan.

Overall my intent is to make the DA infrastructure “conservatively reliable”. That is, make it usable so we don’t need to replicate the dependence analyze infrastructure in other passes. I believe that both industry and academia would benefit from this project since many loop transformations rely on dependence analyze.

Thank you,

  • John
  1. https://sites.google.com/site/parallelizationforllvm/

  2. http://llvm.org/docs/doxygen/html/DependenceAnalysis_8cpp_source.html

  3. http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20130701/179665.html

  4. http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-May/049448.html

  5. http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-November/055131.html

  6. http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-January/080730.html

  7. http://lists.cs.uiuc.edu/pipermail/llvmdev/2015-January/080462.html