Data dependence and its application to parallel processing
International Journal of Parallel Programming
Selected papers of the second workshop on Languages and compilers for parallel computing
Efficient and exact data dependence analysis
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Efficiently computing static single assignment form and the control dependence graph
ACM Transactions on Programming Languages and Systems (TOPLAS)
A practical algorithm for exact array dependence analysis
Communications of the ACM
Delinearization: an efficient way to break multiloop dependence equations
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Abstract debugging of higher-order imperative languages
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Static and dynamic evaluation of data dependence analysis
ICS '93 Proceedings of the 7th international conference on Supercomputing
The Polaris internal representation
International Journal of Parallel Programming
The Omega Library interface guide
The Omega Library interface guide
On the Automatic Parallelization of the Perfect Benchmarks®
IEEE Transactions on Parallel and Distributed Systems
Simplification of array access patterns for compiler optimizations
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Dependence Analysis for Supercomputing
Dependence Analysis for Supercomputing
The range test: a dependence test for symbolic, non-linear expressions
Proceedings of the 1994 ACM/IEEE conference on Supercomputing
Automatic Detection of Parallelism: A Grand Challenge for High-Performance Computing
IEEE Parallel & Distributed Technology: Systems & Technology
Parallel Programming with Polaris
Computer
IPPS '95 Proceedings of the 9th International Symposium on Parallel Processing
Experience in the Automatic Parallelization of Four Perfect-Benchmark Programs
Proceedings of the Fourth International Workshop on Languages and Compilers for Parallel Computing
Polaris: Improving the Effectiveness of Parallelizing Compilers
LCPC '94 Proceedings of the 7th International Workshop on Languages and Compilers for Parallel Computing
Demand-Driven, Symbolic Range Propagation
LCPC '95 Proceedings of the 8th International Workshop on Languages and Compilers for Parallel Computing
Symbolic Analysis: A Basis for Parallelization, Optimization, and Scheduling of Programs
Proceedings of the 6th International Workshop on Languages and Compilers for Parallel Computing
Time Stamp Algorithms for Runtime Parallelization of DOACROSS Loops with Dynamic Dependences
IEEE Transactions on Parallel and Distributed Systems
Multiplex: unifying conventional and speculative thread-level parallelism on a chip multiprocessor
ICS '01 Proceedings of the 15th international conference on Supercomputing
Interactive and symbolic data dependence analysis based on ranges of expressions
Journal of Computer Science and Technology
Unified Interprocedural Parallelism Detection
International Journal of Parallel Programming
A Comparative Analysis of Dependence Testing Mechanisms
LCPC '00 Proceedings of the 13th International Workshop on Languages and Compilers for Parallel Computing-Revised Papers
Symbolic Communication Set Generation for Irregular Parallel Applications
The Journal of Supercomputing
Application of Symbolic Approach to the Bernstein Expansion for Program Analysis and Optimization
Programming and Computing Software
A unified framework for nonlinear dependence testing and symbolic analysis
Proceedings of the 18th annual international conference on Supercomputing
Automatic tiling of iterative stencil loops
ACM Transactions on Programming Languages and Systems (TOPLAS)
Exploitation of parallelism to nested loops with dependence cycles
Journal of Systems Architecture: the EUROMICRO Journal
Efficient Techniques for Advanced Data Dependence Analysis
Proceedings of the 14th International Conference on Parallel Architectures and Compilation Techniques
An empirical evaluation of chains of recurrences for array dependence testing
Proceedings of the 15th international conference on Parallel architectures and compilation techniques
An exact data dependence testing method for quadratic expressions
Information Sciences: an International Journal
One-dimensional I test and direction vector I test with array references by induction variable
International Journal of High Performance Computing and Networking
A multi-dimensional Interval Reduction test
International Journal of High Performance Computing and Networking
An adaptive scheme for dynamic parallelization
LCPC'01 Proceedings of the 14th international conference on Languages and compilers for parallel computing
The Journal of Supercomputing
Interprocedural symbolic range propagation for optimizing compilers
LCPC'05 Proceedings of the 18th international conference on Languages and Compilers for Parallel Computing
Symbolic analysis of imperative programming languages
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
Performance analysis of symbolic analysis techniques for parallelizing compilers
LCPC'02 Proceedings of the 15th international conference on Languages and Compilers for Parallel Computing
Impact of array data flow analysis on the design of energy-efficient circuits
PATMOS'06 Proceedings of the 16th international conference on Integrated Circuit and System Design: power and Timing Modeling, Optimization and Simulation
A symbolic analysis framework for static analysis of imperative programming languages
Journal of Systems and Software
Hi-index | 0.00 |
One of the most crucial qualities of an optimizing compiler is its ability to detect when different data references access the same storage location. Such references are said to be data-dependent and they impose constraints on the amount of program modifications the compiler can apply for improving the program's performance. For parallelizing compilers, the most important program constructs to investigate are loops and the array references they contain. In previous work, we have found a serious limitation of current data dependence tests to be that they cannot handle loop bounds or array subscripts that are symbolic, nonlinear expressions. In this paper, we describe a dependence test, called the Range Test, that can handle such expressions. Briefly, the Range Test proves independence by determining whether certain symbolic inequalities hold for a permutation of the loop nest. Powerful symbolic analyses and constraint propagation techniques were developed to prove such inequalities. The Range Test has been implemented in Polaris, a parallelizing compiler developed at the University of Illinois. We will present measurements of the Range Test's performance and compare it with state-of-the-art tests.