Abstract
This paper aims at describing an algorithm of pointer analysis for practical large-scale application programs written in C language. We formulate the algorithm of pointer analysis in the framework of abstract interpretation. The analysis is carried out by executing an abstract program. To our knowledge, the precision of our abstract memory region is the most accurate among polynomial-time pointer analysis algorithms. We have applied a dynamic checking removal optimization based on our pointer analysis to Fail-Safe C compiler in order to demonstrate effectiveness of our pointer analysis. The experiment targeting SPECCPU 2000 has shown that twenty to seventy percent of dynamic checking can be removed and ten to forty percent of elapsed time is improved.