[GSOC 2018] Implement a single updater class for Dominators

Hello,

I’m an undergraduate student studying CS in the South China University
of Technology.

I have been using clang compiler and related tools since I started
studying C++ and I would like to work on LLVM in this year’s GSoC. I
am interested in “Implement a single updater class for Dominators”.
[1] I have achieved a bronze medal in the 2017 ACM-ICPC Asia Xian
Regional Contest [2] (being a member of the team “Charizard”) thus I
think I have some knowledge on basic tree/graph algorithms and data
structures.

I have gone through most of the LLVM Kaleidoscope tutorial and I have
watched the video of the presentation “Dominator Trees and incremental
updates that transcend time” presented on the 2017 LLVM Developers’
Meeting. I have also started to understand the algorithm mentioned in
the comments of the code related to the dominator tree. I have created
a Bugzilla account and I am now working on a small bug related to
syntax warning (Sema).

I am wondering if there are some other bugs or materials I can go over
in order to achieve a better understanding on the LLVM’s codebase (or
the project mentioned above)? Which part of the codebase do you
recommend to view to learn more about the usage and drawbacks of the
current dominator tree related API? I would appreciate it.

Best regards,

Chijun Sima

[1] https://llvm.org/OpenProjects.html#llvm_domtree_updater
[2] https://icpc.baylor.edu/regionals/finder/asia-xian-2017/standings