Clean up the code structure in terms of two aspects:
1. Simplify the analysis for avoiding redundant
symbolic analysis

2. Add another global data structure to keep track
of global data flow.