Interprocedural optimization: eliminating unnecessary recompilation
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
Interprocedural constant propagation
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
A data model for programming support environments and its application
Trends in information systems
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Analyzing aliases of reference formal parameters
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Constant propagation with conditional branches
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
ALPHA—An Automatic Programming System of High Efficiency
Journal of the ACM (JACM)
Global Data Flow Analysis and Iterative Algorithms
Journal of the ACM (JACM)
A Fast and Usually Linear Algorithm for Global Flow Analysis
Journal of the ACM (JACM)
Data Flow Analysis for Procedural Languages
Journal of the ACM (JACM)
A Unified Approach to Path Problems
Journal of the ACM (JACM)
Fast Algorithms for Solving Path Problems
Journal of the ACM (JACM)
A practical interprocedural data flow analysis algorithm
Communications of the ACM
Efficient computation of flow insensitive interprocedural summary information
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
A precise inter-procedural data flow algorithm
POPL '81 Proceedings of the 8th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An efficient way to find the side effects of procedure calls and the aliases of variables
POPL '79 Proceedings of the 6th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
Organizing software in a distributed environment
Proceedings of the 1983 ACM SIGPLAN symposium on Programming language issues in software systems
Automatic storage optimization
SIGPLAN '79 Proceedings of the 1979 SIGPLAN symposium on Compiler construction
Predicting the effects of optimization on a procedure body
SIGPLAN '79 Proceedings of the 1979 SIGPLAN symposium on Compiler construction
Interprocedural data flow analysis in a programming environment
Interprocedural data flow analysis in a programming environment
Incremental data flow analysis in a structured program editor
Incremental data flow analysis in a structured program editor
Compilation dependences in an ambitious optimizing compiler (interprocedural, recompilation)
Compilation dependences in an ambitious optimizing compiler (interprocedural, recompilation)
Object-oriented database support for software environments
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
The program summary graph and flow-sensitive interprocedual data flow analysis
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
A mechanism for efficient debugging of parallel programs
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Models of software development environments
ICSE '88 Proceedings of the 10th international conference on Software engineering
Rigi-A system for programming-in-the-large
ICSE '88 Proceedings of the 10th international conference on Software engineering
Automatic discovery of parallelism: a tool and an experiment (extended abstract)
PPEALS '88 Proceedings of the ACM/SIGPLAN conference on Parallel programming: experience with applications, languages and systems
Code Optimization Across Procedures
Computer
Cactis: a self-adaptive, concurrent implementation of an object-oriented database management system
ACM Transactions on Database Systems (TODS)
A mechanism for efficient debugging of parallel programs
PADD '88 Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging
Coloring heuristics for register allocation
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
The parascope editor: an interactive parallel programming tool
Proceedings of the 1989 ACM/IEEE conference on Supercomputing
Constructing the Procedure Call Multigraph
IEEE Transactions on Software Engineering
An interval-based approach to exhaustive and incremental interprocedural data-flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Register allocation across procedure and module boundaries
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Models of Software Development Environments
IEEE Transactions on Software Engineering
Analysis and transformation in the ParaScope editor
ICS '91 Proceedings of the 5th international conference on Supercomputing
Performing data flow analysis in parallel
Proceedings of the 1990 ACM/IEEE conference on Supercomputing
Techniques for debugging parallel programs with flowback analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Interprocedural transformations for parallel code generation
Proceedings of the 1991 ACM/IEEE conference on Supercomputing
Subprogram Inlining: A Study of its Effects on Program Execution Time
IEEE Transactions on Software Engineering
Precise and efficient integration of interprocedural alias information into data-flow analysis
ACM Letters on Programming Languages and Systems (LOPLAS)
Unexpected side effects of inline substitution: a case study
ACM Letters on Programming Languages and Systems (LOPLAS)
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
A comprehensive approach to parallel data flow analysis
ICS '92 Proceedings of the 6th international conference on Supercomputing
Interprocedural compilation of Fortran D for MIMD distributed-memory machines
Proceedings of the 1992 ACM/IEEE conference on Supercomputing
A categorized bibliography on incremental computation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Interprocedural optimization: eliminating unnecessary recompilation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Compile-time support for efficient data race detection in shared-memory parallel programs
PADD '93 Proceedings of the 1993 ACM/ONR workshop on Parallel and distributed debugging
Efficient computation of interprocedural definition-use chains
ACM Transactions on Programming Languages and Systems (TOPLAS)
Evaluating automatic parallelization for efficient execution on shared-memory multiprocessors
ICS '94 Proceedings of the 8th international conference on Supercomputing
Interprocedural compilation of irregular applications for distributed memory machines
Supercomputing '95 Proceedings of the 1995 ACM/IEEE conference on Supercomputing
Interprocedural Partial Redundancy Elimination With Application to Distributed Memory Compilation
IEEE Transactions on Parallel and Distributed Systems
The automatic generation of sparse primitives
ACM Transactions on Mathematical Software (TOMS)
The D editor: a new interactive parallel programming tool
Proceedings of the 1994 ACM/IEEE conference on Supercomputing
Interactive Parallel Programming using the ParaScope Editor
IEEE Transactions on Parallel and Distributed Systems
An Implementation of Interprocedural Bounded Regular Section Analysis
IEEE Transactions on Parallel and Distributed Systems
The Cactis Project: Database Support for Software Environments
IEEE Transactions on Software Engineering
ACM Transactions on Programming Languages and Systems (TOPLAS)
Coloring heuristics for register allocation
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Quick and Practical Run-Time Evaluation of Multiple Program Optimizations
Transactions on High-Performance Embedded Architectures and Compilers I
Optimal interprocedural program optimization: a new framework and its application
Optimal interprocedural program optimization: a new framework and its application
A practical method for quickly evaluating program optimizations
HiPEAC'05 Proceedings of the First international conference on High Performance Embedded Architectures and Compilers
A methodology for procedure cloning
Computer Languages
Hi-index | 0.00 |
In spite of substantial progress in the theory of interprocedural data flow analysis, few practical compiling systems can afford to apply it to produce more efficient object programs. To perform interprocedural analysis, a compiler needs not only the source code of the module being compiled, but also information about the side effects of every procedure in the program containing that module, even separately compiled procedures. In a conventional batch compiler system, the increase in compilation time required to gather this information would make the whole process impractical. In an integrated programming environment, however, other tools can cooperate with the compiler to compute the necessary interprocedural information incrementally. as the program is being developed, decreasing both the overall cost of the analysis and the cost of individual compilations.A central goal of the Rn project at Rice University is to construct a prototype software development environment that is designed to build whole programs, rather than just individual modules. It employs interprocedural analysis and optimization to produce high-quality machine code for whole programs. This paper presents an overview of the methods used by the environment to accomplish this task and discusses the impact of these methods on the various environment components. The responsibilities of each component of the environment for the preparation and use of interprocedural information are presented in detail.