Results 1  10
of
18
A unified framework for nonlinear dependence testing and symbolic analysis
 In Proceedings of the ACM International Conference on Supercomputing (ICS
, 2004
"... This paper presents a unified approach for generalized induction variable recognition and substitution, pointer analysis, analysis of conditionally updated variables, value range analysis, array region analysis, and nonlinear dependence testing. The analysis techniques share a welldefined uniform a ..."
Abstract

Cited by 21 (8 self)
 Add to MetaCart
(Show Context)
This paper presents a unified approach for generalized induction variable recognition and substitution, pointer analysis, analysis of conditionally updated variables, value range analysis, array region analysis, and nonlinear dependence testing. The analysis techniques share a welldefined uniform approach based on the chains of recurrences algebra. The uniform algebraic approach provides a powerful unified framework for developing analysis algorithms for restructuring compilers. The paper introduces a new set of analysis algorithms that accurately handle conditional control flow, pointer arithmetic, and nonlinear symbolic expressions in loops, which are known to be problematic for conventional restructuring compilers.
Metamorphic Testing and Beyond
 PROCEEDINGS OF THE INTERNATIONAL WORKSHOP ON SOFTWARE TECHNOLOGY AND ENGINEERING PRACTICE (STEP 2003)
, 2004
"... When testing a program, correctly executed test cases are seldom explored further, even though they may carry useful information. Metamorphic testing proposes to generate followup test cases to check important properties of the target function. It does not need a human oracle for output prediction ..."
Abstract

Cited by 10 (1 self)
 Add to MetaCart
When testing a program, correctly executed test cases are seldom explored further, even though they may carry useful information. Metamorphic testing proposes to generate followup test cases to check important properties of the target function. It does not need a human oracle for output prediction and comparison. In this paper, we highlight the basic concepts of metamorphic testing and some interesting extensions in the areas of program testing, proving, and debugging. Future research directions are also proposed.
Symbolic Communication Set generation for irregular parallel applications
 The Journal of Supercomputing
, 2003
"... Abstract. Communication set generation significantly influences the performance of parallel programs. However, studies seldom give attention to the problem of communication set generation for irregular applications. In this paper, we propose communication optimization techniques for the situation of ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
(Show Context)
Abstract. Communication set generation significantly influences the performance of parallel programs. However, studies seldom give attention to the problem of communication set generation for irregular applications. In this paper, we propose communication optimization techniques for the situation of irregular array references in nested loops. In our methods, the local array distribution schemes are determined so that the total number of communication messages is minimized. Then, we explain how to support communication set generation at compiletime by introducing some symbolic analysis techniques. In our symbolic analysis, symbolic solutions of a set of symbolic expression are obtained by using certain restrictions. We introduce symbolic analysis algorithms to obtain the solutions in terms of a set of equalities and inequalities. Finally, experimental results on a parallel computer CM5 are presented to validate our approach.
Symbolic Cache Analysis for RealTime Systems
, 1999
"... Caches impose a major problem for predicting execution times of realtime systems since the cache behavior depends on the history of previous memory references. Too pessimistic assumptions on cache hits can result in worstcase execution time estimates that are prohibitive for realtime systems. ..."
Abstract

Cited by 7 (4 self)
 Add to MetaCart
(Show Context)
Caches impose a major problem for predicting execution times of realtime systems since the cache behavior depends on the history of previous memory references. Too pessimistic assumptions on cache hits can result in worstcase execution time estimates that are prohibitive for realtime systems.
Value Range Analysis of Conditionally Updated Variables and Pointers
 In proceedings of Compilers for Parallel Computing (CPC) (2004
, 2004
"... Pointerbased array traversals are often used by C programmers to optimize sequential memory access. However, the use of pointer arithmetic prevents compilers from effectively applying dependence testing and loop analysis for optimization and parallelization. Because pointer variables can be view ..."
Abstract

Cited by 7 (5 self)
 Add to MetaCart
Pointerbased array traversals are often used by C programmers to optimize sequential memory access. However, the use of pointer arithmetic prevents compilers from effectively applying dependence testing and loop analysis for optimization and parallelization. Because pointer variables can be viewed as referencetype induction variables, conventional induction variable recognition and substitution methods can be used to translate pointerbased code to arraybased code, thereby enabling the application of traditional loop restructuring compiler optimizations for parallelization. However, conditionally updated induction variables and pointers are prohibiting the application of these optimizations, due to the inability to determine closedform function equivalents. This paper presents a method for value range analysis on conditionally updated induction variables and pointers which have no closedform functions.
Symbolic Pointer Analysis for Detecting Memory Leaks
 Leaks, ACM SIGPLAN Workshop on &quot;Partial Evaluation and SemanticsBased Program Manipulation&quot; (PEPM'00
, 2000
"... It is well accepted that pointers are a common source of memory anomalies such as loosing references to dynamic records without deallocating them (also known as memory leaks). This paper presents a novel pointer analysis framework that detects memory leaks by statically analyzing the behavior of pro ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
It is well accepted that pointers are a common source of memory anomalies such as loosing references to dynamic records without deallocating them (also known as memory leaks). This paper presents a novel pointer analysis framework that detects memory leaks by statically analyzing the behavior of programs. Our approach is based on symbolic evaluation of programs. Symbolic evaluation is an advanced static symbolic analysis that is centered around symbolic variable values, assumptions about and constraints between variable values, and control ow information (path conditions). As part of symbolic evaluation we introduce a new symbolic heap algebra for modeling heap operations. Predicates { dened over the program's input { are derived which allow to detect memory leaks. Our approach goes beyond previous work in the eld of statically detecting memory leaks by considering also path conditions which increases the accuracy of our results, symbolically modeling heap data structures and heap ...
Array data dependence testing with the chains of recurrences algebra
 In proceedings of the IEEE International Workshop on Innovative Architectures for Future Generation HighPerformance Processors and Systems (IWIA
, 2004
"... This paper presents a new approach to arraybased dependence testing in the presence of nonlinear and nonclosed array index expressions and pointer references. Conventional data dependence testing requires induction variable substitution to replace recurrences with closed forms. We take a radically ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
This paper presents a new approach to arraybased dependence testing in the presence of nonlinear and nonclosed array index expressions and pointer references. Conventional data dependence testing requires induction variable substitution to replace recurrences with closed forms. We take a radically different approach to dependence testing by turning the analysis problem upsidedown. We convert closed forms to recurrences for dependence analysis. Because the set of functions defined by recurrences is a superset of functions with closed forms, we show that more dependence problems can be successfully analyzed by rephrasing the arraybased dependence analysis as a search problem for a solution to a system of recurrences. Conditionally and unconditionally updated recurrence forms Unconditionally updated recurrence forms Recurrences with closed forms Affine forms
A New EliminationBased Data Flow Analysis Framework using Annotated Decomposition Trees
 IN PROC. ETAPS 2007, LNCS
, 2007
"... We introduce a new framework for eliminationbased data flow analysis. We present a simple algorithm and a delayed algorithm that exhibit a worstcase complexity of O(n 2) and Õ(m). The algorithms use a new compact data structure for representing reducible flow graphs called Annotated Decomposition ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
(Show Context)
We introduce a new framework for eliminationbased data flow analysis. We present a simple algorithm and a delayed algorithm that exhibit a worstcase complexity of O(n 2) and Õ(m). The algorithms use a new compact data structure for representing reducible flow graphs called Annotated Decomposition Trees. This data structure extends a binary tree to represent flowgraph information, dominance relation of flowgraphs, and the topological order of nodes. The construction of the annotated decomposition trees runs in O(n + m). Experiments were conducted with reducible flowgraphs of the SPEC2000 benchmark suite.
METHODS FOR LINEAR AND NONLINEAR ARRAY DATA DEPENDENCE ANALYSIS WITH THE CHAINS OF RECURRENCES ALGEBRA
, 2007
"... ..."
A Framework for CFGbased Static Program Analysis of Ada Programs
"... Abstract. The control flow graph is the basis for many code optimisation and analysis techniques. We introduce a new framework for the construction of powerful CFGbased representations of arbitrary Ada programs. The generated data holds extensive information about the original Ada source, such as v ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Abstract. The control flow graph is the basis for many code optimisation and analysis techniques. We introduce a new framework for the construction of powerful CFGbased representations of arbitrary Ada programs. The generated data holds extensive information about the original Ada source, such as visibility, package structure and type definitions and provides means for complete interprocedural analysis. We use ASISforGNAT as an interface to the Ada environment and extract the needed information in a single traversal of the provided syntax trees. In addition, further refinement of the resulting data structures is done. 1