Basic compiler algorithms for parallel programs

被引:38
作者
Lee, J
Padua, DA
Midkiff, SP
机构
[1] Univ Illinois, Dept Comp Sci, Urbana, IL 61801 USA
[2] IBM Corp, Thomas J Watson Res Ctr, Yorktown Hts, NY 10598 USA
关键词
D O I
10.1145/329366.301105
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Traditional compiler techniques developed for sequential programs do not guarantee the correctness (sequential consistency) of compiler transformations when applied to parallel programs. This is because traditional compilers for sequential programs do not account for the updates to a shared variable by different threads. We present a concurrent static single assignment (CSSA) form for parallel programs containing cobegin/coend and parallel do constructs and post/wait synchronization primitives. Based on the CSSA form, we present copy propagation and dead code elimination techniques. Also, a global value numbering technique that detects equivalent variables in parallel programs is presented, By using global value numbering and the CSSA form, we extend classical common subexpression elimination, redundant load/store elimination, and loop invariant detection to parallel programs without violating sequential consistency, These optimization techniques are the most commonly used techniques for sequential programs. By extending these techniques to parallel programs, we can guarantee the correctness of the optimized program and maintain single processor performance in a multiprocessor environment.
引用
收藏
页码:1 / 12
页数:12
相关论文
共 33 条
[1]  
Aho Alfred V., 2007, COMPILERS PRINCIPLES
[2]  
Alpern B., 1988, Conference Record of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, P1, DOI 10.1145/73560.73561
[3]  
Appel Andrew W, 2004, Modern Compiler Implementation in {C
[4]  
Callahan D., 1990, P 2 ACM SIGPLAN S PR, DOI DOI 10.1145/99163.99167
[5]  
CHOI JD, 1991, P 3 ACM SIGPLAN S PR, P145
[6]  
COOPER K, 1995, CRPCTR95636S RIC U
[7]   EFFICIENTLY COMPUTING STATIC SINGLE ASSIGNMENT FORM AND THE CONTROL DEPENDENCE GRAPH [J].
CYTRON, R ;
FERRANTE, J ;
ROSEN, BK ;
WEGMAN, MN ;
ZADECK, FK .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1991, 13 (04) :451-490
[8]   EVENT SYNCHRONIZATION ANALYSIS FOR DEBUGGING PARALLEL PROGRAMS [J].
EMRATH, PA ;
GHOSH, S ;
PADUA, DA .
PROCEEDINGS : SUPERCOMPUTING 89, 1989, :580-588
[9]  
EMRATH PA, 1992, IEEE SOFTWARE JAN, P69
[10]   THE PROGRAM DEPENDENCE GRAPH AND ITS USE IN OPTIMIZATION [J].
FERRANTE, J ;
OTTENSTEIN, KJ ;
WARREN, JD .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1987, 9 (03) :319-349