A unified symbolic evaluation framework for parallelizing compilers

被引:13
作者
Fahringer, T
Scholz, B
机构
[1] Univ Vienna, Inst Software Sci, A-1090 Vienna, Austria
[2] Vienna Univ Technol, Inst Comp Languages, A-1040 Vienna, Austria
关键词
symbolic analysis; symbolic evaluation; program context; data-flow and control-flow analysis; symbolic dependence testing; compiler optimizations; parallelizing compilers; parallel systems;
D O I
10.1109/71.888633
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
The quality of many optimizations and analyses of parallelizing compilers depends significantly on the ability to evaluate symbolic expressions and on the amount of information available about program variables at arbitrary program points. In this paper, we describe an effective and unified symbolic evaluation framework that statically determines the values of variables and symbolic expressions, assumptions about and constraints between variable values, and the condition under which control flow reaches a program statement. We introduce the program context, a novel representation for comprehensive and compact control and data flow analysis information. Program contexts are described as first order logic formulas, which allows us to use public domain software for standard symbolic manipulation. Computations are represented as algebraic expressions defined over a program's problem size. Our symbolic evaluation techniques comprise accurate modeling of assignment and input/output statements, branches, loops, recurrences, arrays, and procedures. All of our techniques target both linear, as well as nonlinear, expressions and constraints. Efficiency of symbolic evaluation is highly improved by aggressive simplification techniques. A variety of examples, including program verification, dependence analysis, array privatization, communication vectorization, and elimination of redundant communication, are used to illustrate the effectiveness of our approach. We present results from a preliminary implementation of our framework, which is used as part of a parallelizing compiler that demonstrates the potential performance gains achievable by employing symbolic evaluation to support program parallelization.
引用
收藏
页码:1105 / 1125
页数:21
相关论文
共 57 条
[1]   THE GENESIS DISTRIBUTED-MEMORY BENCHMARKS .1. METHODOLOGY AND GENERAL-RELATIVITY BENCHMARK WITH RESULTS FOR THE SUPRENUM COMPUTER [J].
ADDISON, C ;
ALLWRIGHT, J ;
BINSTED, N ;
BISHOP, N ;
CARPENTER, B ;
DALLOZ, P ;
GEE, D ;
GETOV, V ;
HEY, T ;
HOCKNEY, R ;
LEMKE, M ;
MERLIN, J ;
PINCHES, M ;
SCOTT, C ;
WOLTON, I .
CONCURRENCY-PRACTICE AND EXPERIENCE, 1993, 5 (01) :1-22
[2]  
Aho A., 1988, Compilers - Principles, Techniques and Tools
[3]  
[Anonymous], [No title captured]
[4]  
BALLANCE RA, 1990, P ACM SIGPLAN C PROG, P257
[5]   Fuzzy array dataflow analysis [J].
Barthou, D ;
Collard, JF ;
Feautrier, P .
JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, 1997, 40 (02) :210-226
[6]  
Benkner S., 1999, Scientific Programming, V7, P67
[7]   THE PERFECT-CLUB BENCHMARKS - EFFECTIVE PERFORMANCE EVALUATION OF SUPERCOMPUTERS [J].
BERRY, M ;
CHEN, D ;
KOSS, P ;
KUCK, D ;
LO, S ;
PANG, Y ;
POINTER, L ;
ROLOFF, R ;
SAMEH, A ;
CLEMENTI, E ;
CHIN, S ;
SCHNEIDER, D ;
FOX, G ;
MESSINA, P ;
WALKER, D ;
HSIUNG, C ;
SCHWARZMEIER, J ;
LUE, K ;
ORSZAG, S ;
SEIDL, F ;
JOHNSON, O ;
GOODRUM, R ;
MARTIN, J .
INTERNATIONAL JOURNAL OF SUPERCOMPUTER APPLICATIONS AND HIGH PERFORMANCE COMPUTING, 1989, 3 (03) :5-40
[8]  
BLAHA P, 1995, WIEN95 FULL POTENTIA
[9]   Symbolic cache analysis for real-time systems [J].
Blieberger, J ;
Fahringer, T ;
Scholz, B .
REAL-TIME SYSTEMS, 2000, 18 (2-3) :181-215
[10]   PERFORMANCE ANALYSIS OF PARALLELIZING COMPILERS ON THE PERFECT BENCHMARKS(R) PROGRAMS [J].
BLUME, W ;
EIGENMANN, R .
IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, 1992, 3 (06) :643-656