Interprocedural symbolic analysis

dc.contributor.advisorKennedy, Ken
dc.creatorHavlak, Paul Howard
dc.date.accessioned2009-06-04T00:23:24Z
dc.date.available2009-06-04T00:23:24Z
dc.date.issued1995
dc.description.abstractCompiling for efficient execution on advanced computer architectures requires extensive program analysis and transformation. Most compilers limit their analysis to simple phenomena within single procedures, limiting effective optimization of modular codes and making the programmer's job harder. We present methods for analyzing array side effects and for comparing nonconstant values computed in the same and different procedures. Regular sections, described by rectangular bounds and stride, prove as effective in describing array side effects in L scINPACK as more complicated summary techniques. On a set of six programs, regular section analysis of array side effects gives 0 to 39 percent reductions in array dependences at call sites, with 10 to 25 percent increases in analysis time. Symbolic analysis is essential to data dependence testing, array section analysis, and other high-level program manipulations. We give methods for building symbolic expressions from gated single-assignment form and simplifying them arithmetically. On a suite of 33 scientific Fortran programs, symbolic dependence testing yields reductions of 0 to 32 percent in the number of array dependences, as compared with constant propagation alone. The additional time and space requirements appear proportional to the size of the codes analyzed. Interprocedural symbolic methods are essential in enabling array section analysis and other advanced techniques to operate on multiple procedures. Our implementation provides this support while allowing for recompilation analysis to approximate the incrementalism of separate compilation. However, direct improvement of data dependence graphs from interprocedural symbolic facts is rare in the programs studied. Overall, the use of our symbolic techniques in a production compiler is justified by their efficiency, their direct enhancement of dependence testing within procedures, and their indirect improvement of interprocedural dependence testing through array side effect analysis.
dc.format.extent166 p.en_US
dc.format.mimetypeapplication/pdf
dc.identifier.callnoTHESIS COMP.SCI. 1995 HAVLAK
dc.identifier.citationHavlak, Paul Howard. "Interprocedural symbolic analysis." (1995) Diss., Rice University. <a href="https://hdl.handle.net/1911/16828">https://hdl.handle.net/1911/16828</a>.
dc.identifier.urihttps://hdl.handle.net/1911/16828
dc.language.isoeng
dc.rightsCopyright is held by the author, unless otherwise indicated. Permission to reuse, publish, or reproduce the work beyond the bounds of fair use or other exemptions to copyright law must be obtained from the copyright holder.
dc.subjectComputer science
dc.titleInterprocedural symbolic analysis
dc.typeThesis
dc.type.materialText
thesis.degree.departmentComputer Science
thesis.degree.disciplineEngineering
thesis.degree.grantorRice University
thesis.degree.levelDoctoral
thesis.degree.nameDoctor of Philosophy
Files
Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
9610650.PDF
Size:
6.23 MB
Format:
Adobe Portable Document Format