Reducing communication overhead is extremely important for parallelizing compiler to generate efficient codes for distributed-memory systems. In this paper, a redundant parallel execution model (RPEM) is proposed as an execution model for target programs optimized by the new algorithm. The region graph is introduced, and an effective algorithm is proposed to maximize the regions in the region graph. A region-based data-flow analysis algorithm is proposed to perform communication optimization. The overhead of data-flow analysis can be reduced by performing analysis on the maximized region graph. The coarse grain analysis also helps to communication lift up and aggregation. This communication optimization algorithm is able to perform inter-loop and inter-procedure analysis. Experimental results show that this algorithm is effective in reducing both communication volume and number of messages in programs with a large communication amount.