Interprocedural Symbolic Analysis


The presence of procedure calls complicates analysis of programs, and existing parallelizing compilers give up on dependence analysis of loops that contain procedure calls. In our program analysis framework, procedures are treated as abstract operators, and are modeled by their effects on program variables. Procedures are abstracted by closed form expressions that are solutions to the system of recurrences defined by their bodies. External side effects such as input/output statements are also taken into account. The derived knowledge about actual parameters of procedures can be used to simplify [Weg76a] or partially evaluate [JGS93] the procedures. Procedure specialization [CL73], also known as procedure cloning [CHK92], can be very beneficial in the enhancement and exploitation of the parallelism available in programs. There are, however, many efficiency issues and tradeoffs involved in interprocedural analysis. We do not discuss those issues here, instead, we give an example of interprocedural symbolic analysis in our framework, and refer the interested reader to the literature [CHK92, HMCCR93, Hav94, HK91, Iri93, TIF86].


Dependence Analysis Code Segment Induction Variable Dependence Testing Symbolic Analysis 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Copyright information

© Kluwer Academic Publishers 1995

Personalised recommendations