Requirement
In this assignment, you are asked to add point-to analysis to the URCC compiler. Specifically, you are going to implement a point-to analysis pass based on the Andersen's flow-insensitive algorithm, which has been discussed in the class. After the analysis, your pass is expected to output all point-to sets within the 'main' function. You can assume all pointers are in a same context. To simplify the design of algorithm, all global varibles with name 'Heap_*' in test cases can be regarded as heap data. Your implementation does not have to trace 'malloc' function.
There is no limitation on the output format. Any format that gives a clean representation of the result is acceptable. An example test case is already given in the repository. But there are also several hidden test cases that the grader will use to evaluate your code. So, please do not rely solely on the example test case to test the code.
Submit code and a report describing your design and test results. Your grade will be mainly based on the correctness of your implementation.