Results 1 -
9 of
9
Context-Insensitive Alias Analysis Reconsidered
, 1995
"... ing with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Publications Dept, ACM Inc., fax + 1 (212) 869-0481, or permissions@acm.org. Context-Insensitive Alias Analysis R ..."
Abstract
-
Cited by 119 (1 self)
- Add to MetaCart
ing with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Publications Dept, ACM Inc., fax + 1 (212) 869-0481, or permissions@acm.org. Context-Insensitive Alias Analysis Reconsidered Erik Ruf erikruf@microsoft.com Abstract Recent work on alias analysis in the presence of pointers has concentrated on context-sensitive interprocedural analyses, which treat multiple calls to a single procedure independently rather than constructing a single approximation to a procedure's effect on all of its callers. While contextsensitive modeling offers the potential for greater precision by considering only realizable call-return paths, its empirical benefits have yet to be measured. This paper compares the precision of a simple, efficient, context-insensitive points-to analysis for the C programming language with that of a maximally context-sensitive version of the same...
Interprocedural Aliasing In The Presence Of Pointers
, 1992
"... An Alias occurs at some program point during execution when two or more names exist for the same location. We've investigated the theoretical difficulty of determining the aliases of a program, developed an approximation algorithm for solving for aliases in C like languages, and explored the precisi ..."
Abstract
-
Cited by 56 (8 self)
- Add to MetaCart
An Alias occurs at some program point during execution when two or more names exist for the same location. We've investigated the theoretical difficulty of determining the aliases of a program, developed an approximation algorithm for solving for aliases in C like languages, and explored the precision (i.e., closeness of our approximate solution to the actual solution) and time behavior of this algorithm. Myers [Mye81] explored the theoretical difficulty of solving flow sensitive interprocedural data flow problems in the presence of aliasing. However, he did not make any claims about the difficulty of determining aliases. We isolate various programming language mechanisms that create aliases. The complexity of the alias problem (i.e., determining the aliases for a program) induced by each mechanism and their combinations is considered s...
Program Decomposition for Pointer Aliasing: A Step toward Practical Analyses
- In Symposium on the Foundations of Software Engineering
, 1996
"... Pointer aliasing analysis is crucial to compile-time analyses for languages with general-purpose pointer usage (such as C), but many aliasing methods have proven quite costly. We present a technique that partitions the statements of a program to allow separate, and therefore possibly different, poin ..."
Abstract
-
Cited by 49 (16 self)
- Add to MetaCart
Pointer aliasing analysis is crucial to compile-time analyses for languages with general-purpose pointer usage (such as C), but many aliasing methods have proven quite costly. We present a technique that partitions the statements of a program to allow separate, and therefore possibly different, pointer aliasing analysis methods to be used on independent parts of the program. This decomposition enables exploration of tradeoff between algorithm efficiency and precision. We also present a new, efficient flow-insensitive pointer aliasing algorithm, which is used together with an existing flow-sensitive aliasing algorithm in our experiments. We demonstrate our technique in the context of determining side effects and variable fetches through names containing pointer dereferences (Thru-deref MOD/REF). Initial empirical results using a combination of a flow-sensitive and a flowinsensitive aliasing analysis on the same program, demonstrate that the resulting analysis is much faster than solely ...
Region Analysis: A Parallel Elimination Method for Data Flow Analysis
- IEEE Transactions on Software Engineering
, 1995
"... Parallel data flow analysis methods offer the promise of calculating detailed semantic information about a program at compile-time more efficiently than sequential techniques. Previous work on parallel elimination methods [1, 2] has been hampered by the lack of control over interval size; this can p ..."
Abstract
-
Cited by 8 (3 self)
- Add to MetaCart
Parallel data flow analysis methods offer the promise of calculating detailed semantic information about a program at compile-time more efficiently than sequential techniques. Previous work on parallel elimination methods [1, 2] has been hampered by the lack of control over interval size; this can prohibit effective parallel execution of these methods. To overcome this problem, we have designed the region analysis method, a new elimination method for data flow analysis. Region analysis emphasizes flow graph partitioning to enable better load balancing in a more effective parallel algorithm. In this paper, we present the design of region analysis and the empirical results we have obtained that indicate (1) the prevalence of large intervals in flow graphs derived from real programs, and (2) the performance improvement of region analysis over parallel Allen-Cocke interval analysis. Our implementation analyzed programs from the Perfect Benchmarks [3] and netlib [4] running on a Sequent Sym...
A Comprehensive Approach to Parallel Data Flow Analysis
- In Int. Conf. Supercomputing
, 1992
"... We present a comprehensive approach to performing data flow analysis in parallel. We identify three types of parallelism inherent in the data flow solution process: independent-problem parallelism, separate-unit parallelism and algorithmic parallelism; and describe a unified framework to exploit the ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
We present a comprehensive approach to performing data flow analysis in parallel. We identify three types of parallelism inherent in the data flow solution process: independent-problem parallelism, separate-unit parallelism and algorithmic parallelism; and describe a unified framework to exploit them. Our investigations of typical Fortran programs reveal an abundance of the last two types of parallelism. In particular, we illustrate the exploitation of algorithmic parallelism in the design of our parallel hybrid data flow analysis algorithms. We report on the empirical performance of the parallel hybrid algorithm for the Reaching Definitions problem and the structural characteristics of the program flow graphs that affect algorithm performance. Keywords. Data flow analysis, parallel algorithms, parallel data flow analysis. 1 Introduction 1.1 Motivation Data flow analysis is a compile-time analysis technique that gathers information about the flow of data in the program. Data flow i...
Graphical support for code-level software understanding
- In The Ninth Knowledge-Based Software Engineering Conference
, 1994
"... Understanding of a software system is a prerequisite to any significant maintenance activity, and this understanding must untimately extend to the source code itself. This activity is difficult to support because of its highly interactive nature and the fact that code understanding is generally buil ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
Understanding of a software system is a prerequisite to any significant maintenance activity, and this understanding must untimately extend to the source code itself. This activity is difficult to support because of its highly interactive nature and the fact that code understanding is generally built up over time. This paper describes the Interactive Code Understanding Environment (ICUE, pronounced “IQ ”), a graphical environment that supports the exploration of code and code relationships and allows the capture of signifcant relationships in the fonn of reusable graphical diagrams. ICUE provides a user with the abilily to query a comprehensive code database generatedfrom source code, view the results of queries in the form of graphs, interactively expand the graphs, hide unwanted information in several ways, and examine source code easily and directly from the graphs. ICUE also provides a mechanism for annotating, saving and manipulating these graphs to facilitate the capture of code-level software understanding as a library of such annotated grqh* 1
Interprocedural Reaching Definitions in the Presence of Single Level Pointers
, 1992
"... This paper describes the first algorithm that calculates Interprocedural Def-Use Associations in C software systems. Our algorithm accounts for program-point-specific pointer-induced aliases, although it is currently limited to programs using a single level of indirection. We prove the NP-hardness o ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
This paper describes the first algorithm that calculates Interprocedural Def-Use Associations in C software systems. Our algorithm accounts for program-point-specific pointer-induced aliases, although it is currently limited to programs using a single level of indirection. We prove the NP-hardness of the Interprocedural Reaching Definitions Problem and point out the approximation made by our polynomial-time algorithm. Initial empirical results are also presented. 3 The research reported here was supported by Siemens Corporate Research and NSF grants CCR-8920078 and CCR-9023628 1/5. 1 Introduction Currently, most software tools ignore program constructs that involve pointers because extant analysis techniques are too approximate. Determining data dependences more precisely in the presence of pointers facilitates the construction of effective debugging, testing and maintenance tools for C systems. Our Interprocedural Def-Use analysis is the first step in solving useful data flow prob...
Incremental Analysis of MOD Problem for C
, 1995
"... Incremental data flow analysis seeks to efficiently and precisely update data flow information after source code changes, based on the knowledge of the former solution and the changes, without re-computation from scratch. Interprocedural modification side effect analysis (i.e., MOD) finds the set of ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Incremental data flow analysis seeks to efficiently and precisely update data flow information after source code changes, based on the knowledge of the former solution and the changes, without re-computation from scratch. Interprocedural modification side effect analysis (i.e., MOD) finds the set of variables modified by execution of a statement. Computing MOD information for a language with general purpose pointers, like C, is very complicated and costly. We study the applicability of the hybrid algorithm [MR90] to incrementalize PMOD - a subproblem of the MOD problem for C. We also show how to update data flow information when non-structural or structural changes are made to the flow graph. 1. Introduction Information about the uses and definitions of data in programs is crucial to software testing, debugging and maintenance, especially of large software systems [Ryd89]. This information is also essential in program optimization and parallelization [ASU86]. Since a software system ev...
Differences in Algorithmic Parallelism in Control Flow and Call Multigraphs
- in Proceedings of the Seventh Annual Workshop on Languages and Compilers for Parallel Computing
, 1994
"... This paper describes our experiences with an implementation of the Interprocedural May Alias problem for Fortran. The disappointing speedups obtained led us to subsequent study of the effectiveness of our region partitioning methods on call multigraphs as compared to control flow graphs. We develope ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
This paper describes our experiences with an implementation of the Interprocedural May Alias problem for Fortran. The disappointing speedups obtained led us to subsequent study of the effectiveness of our region partitioning methods on call multigraphs as compared to control flow graphs. We developed two metrics,

