Abstract

Data dependence analysis is a standard part of many compilers and optimizers of high level languages [1]. Traditionally, any call to a procedure causes such analysis to assume the worst-case dependences between data used by that procedure. Vectorizing and parallelizing compilers are strongly dependent on the quality of data dependence analysis [10, 11]. Thus, some compilers in this class include interprocedural data analysis [6, 7]. The goal is to improve code parallelization and to minimize the extent of recompilations triggered by the changes in the called procedures [7]. In the assertive programming paradigm, a computation is represented by a set of assertions about the solution. The flow of control is defined by the compiler based on data dependences. In the Equational Programming Language the assertions are restricted to algebraic equations [17]. Large computations are represented as sets of cooperating processes. In this framework, the quality of the generated code and its correctness depend on recognizing all data dependences existing in the computation. Furthermore, individual process correctness is a necessary but not sufficient condition for the correctness of the entire computation. In analyzing dependences implied by each process, the EPL compiler follows the standard technique of building and processing a data dependence graph [10, 11, 8, 6, 7, 16]. This paper discusses the tools implemented in the EPL compiler for analyzing dependences implied by the process' interactions. Our approach to interprocess data dependence analysis is to extend a dependence graph beyond the scope of each process. The extended graph is then analyzed using the attribute propagation technique developed in the EPL compiler for individual process consistency checking [17]. The derived dependences, called external, are specific to each use of a process in a particular computation. As such, they are kept separate from the process dependence graph. A process needs to be recompiled only if the changes in other process' definitions change its external dependences. The described algorithm, although

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call