Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Abstraction and specification in program development
Abstraction and specification in program development
Detecting conflicts between structure accesses
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Fast interprocedual alias analysis
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Analysis of pointers and structures
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Pointer-induced aliasing: a problem classification
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Limits of instruction-level parallelism
ASPLOS IV Proceedings of the fourth international conference on Architectural support for programming languages and operating systems
Systems programming with Modula-3
Systems programming with Modula-3
A safe approximate algorithm for interprocedural aliasing
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ATOM: a system for building customized program analysis tools
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
A general data dependence test for dynamic, pointer-based data structures
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Context-sensitive interprocedural points-to analysis in the presence of function pointers
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
Efficient context-sensitive pointer analysis for C programs
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Context-insensitive alias analysis reconsidered
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Simple and effective link-time optimization of Modula-3 programs
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
A system level perspective on branch architecture performance
Proceedings of the 28th annual international symposium on Microarchitecture
Commutativity analysis: a new analysis framework for parallelizing compilers
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Vortex: an optimizing compiler for object-oriented languages
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Simple and effective analysis of statically-typed object-oriented programs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Points-to analysis in almost linear time
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Register promotion in C programs
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Fast and accurate flow-insensitive points-to analysis
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Partitioning dataflow analyses using types
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Alias analysis of executable code
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Putting pointer analysis to work
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Understanding and improving the performance of modern programming languages
Understanding and improving the performance of modern programming languages
Computer architecture (2nd ed.): a quantitative approach
Computer architecture (2nd ed.): a quantitative approach
POPL '80 Proceedings of the 7th 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
Generalizing Dispatching in a Distributed Object System
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
The Effects of the Precision of Pointer Analysis
SAS '97 Proceedings of the 4th International Symposium on Static Analysis
Load-reuse analysis: design and evaluation
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Interprocedural pointer alias analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Which pointer analysis should I use?
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
Modular interprocedural pointer analysis using access paths: design, implementation, and evaluation
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Field analysis: getting useful and low-cost interprocedural information
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
An automatic object inlining optimization and its evaluation
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Proceedings of the 2001 ACM SIGMETRICS international conference on Measurement and modeling of computer systems
On the importance of points-to analysis and other memory disambiguation methods for C programs
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Type-based analysis and applications
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Pointer analysis: haven't we solved this problem yet?
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
PASTE '01 Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Using types to analyze and optimize object-oriented programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automated discovery of scoped memory regions for real-time Java
Proceedings of the 3rd international symposium on Memory management
Static load classification for improving the value predictability of data-cache misses
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Instance-wise points-to analysis for loop-based dependence testing
ICS '02 Proceedings of the 16th international conference on Supercomputing
Alias analysis on type inference for class hierarchy in Java
ACSC '01 Proceedings of the 24th Australasian conference on Computer science
Ownership, encapsulation and the disjointness of type and effect
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Pointer analysis for structured parallel programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Automatic Parallelization of C by Means of Language Transcription
LCPC '98 Proceedings of the 11th International Workshop on Languages and Compilers for Parallel Computing
LCPC '99 Proceedings of the 12th International Workshop on Languages and Compilers for Parallel Computing
Speculative Alias Analysis for Executable Code
Proceedings of the 2002 International Conference on Parallel Architectures and Compilation Techniques
Just-In-Time Java? Compilation for the Itanium® Processor
Proceedings of the 2002 International Conference on Parallel Architectures and Compilation Techniques
Assessing the Effects of Flow-Sensitivity on Pointer Alias Analyses
SAS '98 Proceedings of the 5th International Symposium on Static Analysis
Estimating the Impact of Scalable Pointer Analysis on Optimization
SAS '01 Proceedings of the 8th International Symposium on Static Analysis
Inter-procedural Analysis for Parallelization of Java Programs
ParNum '99 Proceedings of the 4th International ACPC Conference Including Special Tracks on Parallel Numerics and Parallel Computing in Image Processing, Video Processing, and Multimedia: Parallel Computation
Compiler-directed run-time monitoring of program data access
Proceedings of the 2002 workshop on Memory system performance
A compiler framework for speculative analysis and optimizations
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Alias analysis in Java with reference-set representation for high-performance computing
International Journal of Parallel Programming
Online Cycle Detection and Difference Propagation: Applications to Pointer Analysis
Software Quality Control
A compiler framework for speculative optimizations
ACM Transactions on Architecture and Code Optimization (TACO)
A brief survey of program slicing
ACM SIGSOFT Software Engineering Notes
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Interprocedural side-effect analysis and optimisation in the presence of dynamic class loading
ACSC '05 Proceedings of the Twenty-eighth Australasian conference on Computer Science - Volume 38
Program Slicing with Dynamic Points-To Sets
IEEE Transactions on Software Engineering
Type-sensitive control-flow analysis
Proceedings of the 2006 workshop on ML
Generic ownership for generic Java
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Incremental checkpointing with application to distributed discrete event simulation
Proceedings of the 38th conference on Winter simulation
Interprocedural side-effect analysis for incomplete object-oriented software modules
Journal of Systems and Software
Efficient field-sensitive pointer analysis of C
ACM Transactions on Programming Languages and Systems (TOPLAS)
Virtual machine showdown: Stack versus registers
ACM Transactions on Architecture and Code Optimization (TACO)
Fault-safe code motion for type-safe languages
Proceedings of the 6th annual IEEE/ACM international symposium on Code generation and optimization
Verifying dereference safety via expanding-scope analysis
ISSTA '08 Proceedings of the 2008 international symposium on Software testing and analysis
Scaling Java points-to analysis using SPARK
CC'03 Proceedings of the 12th international conference on Compiler construction
Alias analysis for optimization of dynamic languages
Proceedings of the 6th symposium on Dynamic languages
Verifying pointer and string analyses with region type systems
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
IDE support to facilitate the transition from rapid prototyping to robust software production
Proceedings of the 1st Workshop on Developing Tools as Plug-ins
Static extraction of program configuration options
Proceedings of the 33rd International Conference on Software Engineering
Using disjoint reachability for parallelization
CC'11/ETAPS'11 Proceedings of the 20th international conference on Compiler construction: part of the joint European conferences on theory and practice of software
Data-driven synthesis for object-oriented frameworks
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Using inter-procedural side-effect information in JIT optimizations
CC'05 Proceedings of the 14th international conference on Compiler Construction
An empirical study on the granularity of pointer analysis in c programs
LCPC'02 Proceedings of the 15th international conference on Languages and Compilers for Parallel Computing
Exploiting regularity of user-defined types to improve precision of program analyses
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Loop-aware optimizations in PyPy's tracing JIT
Proceedings of the 8th symposium on Dynamic languages
Summary-based data-flow analysis that understands regular composite objects and iterators
ACM SIGAPP Applied Computing Review
Verifying pointer and string analyses with region type systems
Computer Languages, Systems and Structures
DeAliaser: alias speculation using atomic region support
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Hi-index | 0.00 |
This paper evaluates three alias analyses based on programming language types. The first analysis uses type compatibility to determine aliases. The second extends the first by using additional high-level information such as field names. The third extends the second with a flow-insensitive analysis. Although other researchers suggests using types to disambiguate memory references, none evaluates its effectiveness. We perform both static and dynamic evaluations of type-based alias analyses for Modula-3, a statically-typed type-safe language. The static analysis reveals that type compatibility alone yields a very imprecise alias analysis, but the other two analyses significantly improve alias precision. We use redundant load elimination (RLE) to demonstrate the effectiveness of the three alias algorithms in terms of the opportunities for optimization, the impact on simulated execution times, and to compute an upper bound on what a perfect alias analysis would yield. We show modest dynamic improvements for (RLE), and more surprisingly, that on average our alias analysis is within 2.5% of a perfect alias analysis with respect to RLE on 8 Modula-3 programs. These results illustrate that to explore thoroughly the effectiveness of alias analyses, researchers need static, dynamic, and upper-bound analysis. In addition, we show that for type-safe languages like Modula-3 and Java, a fast and simple alias analysis may be sufficient for many applications.