Newsgroups: comp.parallel
From: mohammad@csrd.uiuc.edu (Mohammad Reza Haghighat)
Subject: posting in comp.parallel
Organization: University of Pittsburgh
Date: 12 Sep 1995 13:24:48 GMT
Message-ID: <4341n0$9p6@usenet.srv.cis.pitt.edu>

I'd like to announce the availability of the following new book:


    Title      : SYMBOLIC ANALYSIS FOR PARALLELIZING COMPILERS
    Author     : Mohammad R. Haghighat 

    Foreword   : Constantine D. Polychronopoulos

    Publisher  : Kluwer Academic Publishers, 1995
    ISBN       : 0-7923-9623-5
    Pages      : 168, Hard Cover 
    List price : $90.00 
                 The publisher offers a 20% discount for orders received 
                 by October 1, 1995 via e-mail <Kluwer@world.std.com>.

    
SYMBOLIC ANALYSIS FOR PARALLELIZING COMPILERS is the first complete account of 
the state-of-the-art symbolic analysis techniques for parallelizing compilers. 
The book makes a compelling case for the potential of symbolic analysis 
techniques by applying them with remarkable results to such important program 
optimization problems as dependence analysis, static timing or size analysis, 
and loop scheduling. Although automatic program parallelization is the focus of 
the book, the presented techniques should prove useful in other realms where 
understanding of programs is essential in achieving efficiency, proving 
correctness, and reengineering the programs.

The book presents a system for automatic analysis and optimization of programs 
for parallel computers. The fundamental components of the system, the required 
analysis techniques (some of them new and original), and the theoretical
foundations and limitations of the methods are described in detail. Application
of the techniques in solving complicated problems is illustrated through many 
examples from real benchmarks. A prototype of the system is implemented in the 
frame of Parafrase-2, a widely used experimental compiler developed at the 
University of Illinois. By using this system, Parafrase-2 was able to solve
some of the most difficult compiler problems more precisely than other 
state-of-the-art parallelizing compilers. 

The results of the implementation and experiments demonstrate that symbolic 
analysis can be useful to any program transformational system that relies on 
compile-time information about program properties. This includes the majority 
of program optimization and parallelization techniques. The practicality and 
efficiency of the approach have been principal guidelines throughout the work. 

SYMBOLIC ANALYSIS FOR PARALLELIZING COMPILERS should be of interest to people 
in high-performance computing, especially compiler practitioners and researchers
of high-performance compilers in industry and academia. In particular, readers 
of the books of Dr. Utpal Banerjee, Prof. Constantine Polychronopoulos, and 
Prof. Michael Wolfe may enjoy reading this book. Researchers in abstract 
interpretation, semantics-based analysis, and automated reasoning may also find 
the material useful and stimulating. 

 
---------------------------------------------------------
CONTENTS
---------------------------------------------------------

1  INTRODUCTION
   1.1  Contributions
   1.2  Book Outline

2  RELATED WORK

3  SYMBOLIC ANALYSIS
   3.1  Abstract Symbolic Domain
   3.2  Abstraction of the Assignment Operation
   3.3  Abstraction of Integer Division
   3.4  Tests of Integer Divisibility
   3.5  Interpretation of Flow Graph Nodes
   3.6  Interpretation of Program Loops

4  INDUCTION VARIABLES
   4.1  Generalized Induction Variables
   4.2  Generalized Induction Expressions
   4.3  Symbolic Interpolation
   4.4  Induction Expressions with Conditional Statements
   4.5  Wraparound Expressions
   4.6  Loop Normalization
   4.7  Recognition of Loop-Invariant Computations
   4.8  Architecture of a Symbolic Analysis System

5  INTERPROCEDURAL SYMBOLIC ANALYSIS
   5.1  Dead-Code Elimination
   5.2  Symbolic Dependence Analysis
   5.3  Program Optimization

6  TIMING ANALYSIS AND SCHEDULING
   6.1  Loop Scheduling
   6.2  Derivation of Symbolic Cost Estimates
   6.3  Computing Probabilities of Structural Conditions
   6.4  Algebra of Conditional Values

7  IMPLEMENTATION AND EXPERIMENTS

8  CONCLUSIONS
   8.1  Future Research

A  INTERVAL ANALYSIS
   A.1  Introduction
   A.2  The Origin of Interval Analysis
   A.3  Interval Arithmetic
   A.4  Extended Interval Arithmetic
   A.5  Interval Functions
   A.6  Intervals in Aid of Program Analysis

   REFERENCES

   INDEX

---------------------------------------------------------

Mohammad R. Haghighat
mohammad@csrd.uiuc.edu

