Abstract:
Global data distribution analysis is a key technology for parallel compilers. Compiler should let computing and data used by these computing locate at the same processor, otherwise, the performance of applications will be very poor. Interprocedure analysis is necessary for global data distribution analysis. When mapping functions of a formal array and actual array associated with this formal array are not compatible, the cost of this procedure callsite will be very high. Two issues must be solved: ① how to process procedure calls; ② how to collect array distribution information and transfer the useful information among procedures. In this paper, a method for solving these two issues is introduced. All callsites of a procedure are classified into patterns according to their calling contexts, with each pattern calling a special body of this procedure. Information used to classify the callsites can be applied for pattern body’s parallel optimizing, too. This is called instantiation. This method can be used to decrease the cost of procedure call and to obtain a global optimizing data distribution model.