Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Advanced compiler optimizations for supercomputers
Communications of the ACM - Special issue on parallelism
Automatic translation of FORTRAN programs to vector form
ACM Transactions on Programming Languages and Systems (TOPLAS)
Detecting conflicts between structure accesses
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Software pipelining: an effective scheduling technique for VLIW machines
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
Restructuring Lisp programs for concurrent execution
PPEALS '88 Proceedings of the ACM/SIGPLAN conference on Parallel programming: experience with applications, languages and systems
Dependence analysis for pointer variables
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
The design and analysis of spatial data structures
The design and analysis of spatial data structures
Supercompilers for parallel and vector computers
Supercompilers for parallel and vector computers
Selected papers of the second workshop on Languages and compilers for parallel computing
Selected papers of the second workshop on Languages and compilers for parallel computing
The PARSEQ project: an interim report
Selected papers of the second workshop on Languages and compilers for parallel computing
Analysis of pointers and structures
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Parallelizing programs with recursive data structures
Parallelizing programs with recursive data structures
Fortran 90 explained
Program Improvement by Source-to-Source Transformation
Journal of the ACM (JACM)
Data Structure Techniques
Program Flow Analysis: Theory and Application
Program Flow Analysis: Theory and Application
Structure of Computers and Computations
Structure of Computers and Computations
Parallelizing Programs with Recursive Data Structures
IEEE Transactions on Parallel and Distributed Systems
Perfect Pipelining: A New Loop Parallelization Technique
ESOP '88 Proceedings of the 2nd European Symposium on Programming
Register Allocation, Renaming and Their Impact on Fine-Grain Parallelism
Proceedings of the Fourth International Workshop on Languages and Compilers for Parallel Computing
ISCA '82 Proceedings of the 9th annual symposium on Computer Architecture
Restructuring symbolic programs for concurrent execution on multiprocessors
Restructuring symbolic programs for concurrent execution on multiprocessors
ACM Letters on Programming Languages and Systems (LOPLAS)
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
Interprocedural may-alias analysis for pointers: beyond k-limiting
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
A study of pointer aliasing for software pipelining using run-time disambiguation
MICRO 27 Proceedings of the 27th annual international symposium on Microarchitecture
Supporting dynamic data structures on distributed-memory machines
ACM Transactions on Programming Languages and Systems (TOPLAS)
Static detection of dynamic memory errors
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Commutativity analysis: a new analysis framework for parallelizing compilers
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Solving shape-analysis problems in languages with destructive updating
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Slicing real-time programs for enhanced schedulability
ACM Transactions on Programming Languages and Systems (TOPLAS)
Partitioning dataflow analyses using types
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Commutativity analysis: a new analysis technique for parallelizing compilers
ACM Transactions on Programming Languages and Systems (TOPLAS)
Solving shape-analysis problems in languages with destructive updating
ACM Transactions on Programming Languages and Systems (TOPLAS)
Detecting memory errors via static pointer analysis (preliminary experience)
Proceedings of the 1998 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
The design, implementation, and evaluation of Jade
ACM Transactions on Programming Languages and Systems (TOPLAS)
Parametric shape analysis via 3-valued logic
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dynamically discovering likely program invariants to support program evolution
Proceedings of the 21st international conference on Software engineering
Live memory analysis for garbage collection in embedded systems
Proceedings of the ACM SIGPLAN 1999 workshop on Languages, compilers, and tools for embedded systems
Optimizations and oracle parallelism with dynamic translation
Proceedings of the 32nd annual ACM/IEEE international symposium on Microarchitecture
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
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
The pointer assertion logic engine
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
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
SPMD execution in the presence of dynamic data structures
Compiler optimizations for scalable parallel systems
A schema for interprocedural modification side-effect analysis with pointer aliasing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Parametric shape analysis via 3-valued logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
Evaluating the precision of static reference analysis using profiling
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
Automatic Accurate Cost-Bound Analysis for High-Level Languages
IEEE Transactions on Computers
Interprocedural Def-Use Associations for C Systems with Single Level Pointers
IEEE Transactions on Software Engineering
A Decidable Logic for Describing Linked Data Structures
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
Data Distribution Analysis and Optimization for Pointer-Based Distributed Programs
ICPP '97 Proceedings of the international Conference on Parallel Processing
Beyond Arrays - A Container-Centric Approach for Parallelization of Real-World Symbolic Applications
LCPC '98 Proceedings of the 11th International Workshop on Languages and Compilers for Parallel Computing
Analysis of Multithreaded Programs
SAS '01 Proceedings of the 8th International Symposium on Static Analysis
Interprocedural Shape Analysis for Recursive Programs
CC '01 Proceedings of the 10th International Conference on Compiler Construction
Commutativity Analysis: A Technique for Automatically Parallelizing Pointer-Based Computations
IPPS '96 Proceedings of the 10th International Parallel Processing Symposium
CC '00 Proceedings of the 9th International Conference on Compiler Construction
Storeless semantics and alias logic
Proceedings of the 2003 ACM SIGPLAN workshop on Partial evaluation and semantics-based program manipulation
Memory disambiguation for general-purpose applications
CASCON '95 Proceedings of the 1995 conference of the Centre for Advanced Studies on Collaborative research
A brief survey of program slicing
ACM SIGSOFT Software Engineering Notes
Logical characterizations of heap abstractions
ACM Transactions on Computational Logic (TOCL)
Automatic Discovery of Coarse-Grained Parallelism in Media Applications
Transactions on High-Performance Embedded Architectures and Compilers I
Model Checking Dynamic Memory Allocation in Operating Systems
Journal of Automated Reasoning
Static analysis of accessed regions in recursive data structures
SAS'03 Proceedings of the 10th international conference on Static analysis
Beyond iteration vectors: instancewise relational abstract domains
SAS'06 Proceedings of the 13th international conference on Static Analysis
A logic of reachable patterns in linked data-structures
FOSSACS'06 Proceedings of the 9th European joint conference on Foundations of Software Science and Computation Structures
Data parallel iterators for hierarchical grid and tree algorithms
Euro-Par'06 Proceedings of the 12th international conference on Parallel Processing
A type system for reachability and acyclicity
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
CADE' 20 Proceedings of the 20th international conference on Automated Deduction
Hi-index | 0.00 |
Even though impressive progress has been made in the area of optimizing and parallelizing programs with arrays, the application of similar techniques to programs with pointer data structures has remained difficult. In this paper we introduce a new approach that leads to improved analysis and transformation of programs with recursively-defined pointer data structures.We discuss how an abstract data structure description can improve program analysis by presenting an analysis approach that combines an alias analysis technique, path matrix, with information available from an ADDS declaration. Given this improved alias analysis technique, we provide a concrete example of applying a software pipelining transformation to loops involving pointer data structures.