Before revision:  A systematic methodology to guide the parallelization is essential: we used data race detection tools to identify unsafe parallelism and employed performance profiling tools to pinpoint performance bottlenecks that merit attention. This methodology guided us to design a new parallel analysis for constructing control flow graphs and identify thread-safety issues widely spread in the codebase .
After revision:  A systematic methodology to guide the design of parallel algorithms is essential. We abstract the task of constructing CFGs as repeated applications of several core CFG operations regarding to creating functions, basic blocks, and edges. We then derive properties among CFG operations, including operation dependency, commutativity, monotonicity. These operation properties guide our design of a new parallel analysis for constructing control flow graphs and identify thread-safety issues widely spread in the codebase .