Computational geometry: an introduction
Computational geometry: an introduction
Advanced compiler optimizations for supercomputers
Communications of the ACM - Special issue on parallelism
Analysis of functional programs to detect run-time garbage cells
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
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Lifetime analysis of dynamically allocated objects
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dependence analysis for pointer variables
PLDI '89 Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation
Applications of spatial data structures: Computer graphics, image processing, and GIS
Applications of spatial data structures: Computer graphics, image processing, and GIS
Effect analysis in higher-order languages
International Journal of Parallel Programming
Supercompilers for parallel and vector computers
Supercompilers for parallel and vector computers
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
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
Pointer target tracking—an empirical study
Proceedings of the 1991 ACM/IEEE conference on Supercomputing
Analysis of recursive types in Lisp-like languages
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
A safe approximate algorithm for interprocedural aliasing
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Astrophysical N-body simulations using hierarchical tree data structures
Proceedings of the 1992 ACM/IEEE conference on Supercomputing
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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
Undecidability of static analysis
ACM Letters on Programming Languages and Systems (LOPLAS)
Pointer-induced aliasing: a clarification
ACM SIGPLAN Notices
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
A semantic model of reference counting and its abstraction (detailed summary)
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Retargetable high-level alias analysis
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Loop Transformations for Restructuring Compilers: The Foundations
Loop Transformations for Restructuring Compilers: The Foundations
Data Structure Techniques
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
Machines, Languages and Computation
Machines, Languages and Computation
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parallelizing Programs with Recursive Data Structures
IEEE Transactions on Parallel and Distributed Systems
A Language for Conveying the Aliasing Properties of Dynamic, Pointer-Based Data Structures
Proceedings of the 8th International Symposium on Parallel Processing
Designing the McCAT Compiler Based on a Family of Structured Intermediate Representations
Proceedings of the 5th International Workshop on Languages and Compilers for Parallel Computing
A Program's Eye View of Miprac
Proceedings of the 5th International Workshop on Languages and Compilers for Parallel Computing
Analysis of Dynamic Structures for Efficient Parallel Execution
Proceedings of the 6th International Workshop on Languages and Compilers for Parallel Computing
SPLASH: Stanford parallel applications for shared-memory
SPLASH: Stanford parallel applications for shared-memory
Software caching and computation migration in Olden
PPOPP '95 Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming
Semantic models and abstract interpretation techniques for inductive data structures and pointers
PEPM '95 Proceedings of the 1995 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Compiler-based prefetching for recursive data structures
Proceedings of the seventh international conference on Architectural support for programming languages and operating systems
Register promotion in C programs
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
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
Commutativity analysis: a new analysis technique for parallelizing compilers
ACM Transactions on Programming Languages and Systems (TOPLAS)
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
New shape analysis techniques for automatic parallelization of C codes
ICS '99 Proceedings of the 13th international conference on Supercomputing
Automatic loop transformations and parallelization for Java
Proceedings of the 14th international conference on Supercomputing
Monotonic evolution: an alternative to induction variable substitution for dependence analysis
ICS '01 Proceedings of the 15th international conference on Supercomputing
Using types to analyze and optimize object-oriented programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Instance-wise points-to analysis for loop-based dependence testing
ICS '02 Proceedings of the 16th international conference on Supercomputing
New Shape Analysis and Interprocedural Techniques for Automatic Parallelization of C Codes
International Journal of Parallel Programming
Containers on the Parallelization of General-Purpose Java Programs
International Journal of Parallel Programming
New shape analysis and interprocedural techniques for automatic parallelization of C codes
International Journal of Parallel Programming
Parallelizing graph construction operations in programs with cyclic graphs
Parallel Computing
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
Safe Approximation of Data Dependencies in Pointer-Based Structures
LCPC '00 Proceedings of the 13th International Workshop on Languages and Compilers for Parallel Computing-Revised Papers
Memory disambiguation for general-purpose applications
CASCON '95 Proceedings of the 1995 conference of the Centre for Advanced Studies on Collaborative research
Identifying parallelism in programs with cyclic graphs
Journal of Parallel and Distributed Computing
Identifying Parallelism in Programs with Cyclic Graphs
ICPP '00 Proceedings of the Proceedings of the 2000 International Conference on Parallel Processing
A Framework to Capture Dynamic Data Structures in Pointer-Based Codes
IEEE Transactions on Parallel and Distributed Systems
Region-based shape analysis with tracked locations
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Detecting loop-carried dependences in programs with dynamic data structures
Journal of Parallel and Distributed Computing
Identification of Heap---Carried Data Dependence Via Explicit Store Heap Models
Languages and Compilers for Parallel Computing
Automatic Parallelization with Separation Logic
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
A compile/run-time environment for the automatic transformation of linked list data structures
International Journal of Parallel Programming
Can transactions enhance parallel programs?
LCPC'06 Proceedings of the 19th international conference on Languages and compilers for parallel computing
Static analysis of accessed regions in recursive data structures
SAS'03 Proceedings of the 10th international conference on Static analysis
Maintaining doubly-linked list invariants in shape analysis with local reasoning
VMCAI'07 Proceedings of the 8th international conference on Verification, model checking, and abstract interpretation
How to unleash array optimizations on code using recursive data structures
Proceedings of the 24th ACM International Conference on Supercomputing
Program parallelization using synchronized pipelining
LOPSTR'09 Proceedings of the 19th international conference on Logic-Based Program Synthesis and Transformation
A new dependence test based on shape analysis for pointer-based codes
LCPC'04 Proceedings of the 17th international conference on Languages and Compilers for High Performance Computing
Towards compiler optimization of codes based on arrays of pointers
LCPC'02 Proceedings of the 15th international conference on Languages and Compilers for Parallel Computing
Language design and analyzability: a retrospective
Software—Practice & Experience
Data Linkage Algebra, Data Linkage Dynamics, and Priority Rewriting
Fundamenta Informaticae
Hi-index | 0.00 |
Optimizing compilers require accurate dependence testing to enable numerous, performance-enhancing transformations. However, data dependence testing is a difficult problem, particularly in the presence of pointers. Though existing approaches work well for pointers to named memory locations (i.e. other variables), they are overly conservative in the case of pointers to unnamed memory locations. The latter occurs in the context of dynamic, pointer-based data structures, used in a variety of applications ranging from system software to computational geometry to N-body and circuit simulations.In this paper we present a new technique for performing more accurate data dependence testing in the presence of dynamic, pointer-based data structures. We will demonstrate its effectiveness by breaking false dependences that existing approaches cannot, and provide results which show that removing these dependences enables significant parallelization of a real application.