Higher-order concurrency
Data flow equations for explicitly parallel programs
PPOPP '93 Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming
Data locality and load balancing in COOL
PPOPP '93 Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming
Using threads in interactive systems: a case study
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
Type inference of SELF: analysis of objects with dynamic and multiple inheritance
Software—Practice & Experience
The SPLASH-2 programs: characterization and methodological considerations
ISCA '95 Proceedings of the 22nd annual international symposium on Computer architecture
Parallelism for free: efficient and optimal bitvector analyses for parallel programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Typed memory management in a calculus of capabilities
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Pointer analysis for multithreaded programs
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Escape analysis for object-oriented languages: application to Java
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Removing unnecessary synchronization in Java
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Compositional pointer and escape analysis for Java programs
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Effective synchronization removal for Java
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Concurrent Programming in Java: Design Principles and Patterns
Concurrent Programming in Java: Design Principles and Patterns
Principles of Program Analysis
Principles of Program Analysis
Flash: an efficient and portable web server
ATEC '99 Proceedings of the annual conference on USENIX Annual Technical Conference
Automated discovery of scoped memory regions for real-time Java
Proceedings of the 3rd international symposium on Memory management
Understanding the connectivity of heap objects
Proceedings of the 3rd international symposium on Memory management
Pointer analysis for structured parallel programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
An Implementation of Scoped Memory for Real-Time Java
EMSOFT '01 Proceedings of the First International Workshop on Embedded Software
Analysis of Multithreaded Programs
SAS '01 Proceedings of the 8th International Symposium on Static Analysis
Data size optimizations for java programs
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
Ownership types for safe region-based memory management in real-time Java
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
A type and effect system for atomicity
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Pointer analysis of multithreaded Java programs
Proceedings of the 2003 ACM symposium on Applied computing
A practical type system and language for reference immutability
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Region analysis and transformation for Java programs
Proceedings of the 4th international symposium on Memory management
Flow analysis for verifying properties of concurrent software systems
ACM Transactions on Software Engineering and Methodology (TOSEM)
Autolocker: synchronization inference for atomic sections
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
JScoper: Eclipse support for research on scoping and instrumentation for real time Java applications
eclipse '05 Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange
Types for safe locking: Static race detection for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Manufacturing opaque predicates in distributed systems for code obfuscation
ACSC '06 Proceedings of the 29th Australasian Computer Science Conference - Volume 48
A two-phase escape analysis for parallel java programs
Proceedings of the 15th international conference on Parallel architectures and compilation techniques
Eliminating synchronization-related atomic operations with biased locking and bulk rebiasing
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Interprocedural slicing of multithreaded programs with applications to Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Deriving escape analysis by abstract interpretation
Higher-Order and Symbolic Computation
Enabling tracing Of long-running multithreaded programs via dynamic execution reduction
Proceedings of the 2007 international symposium on Software testing and analysis
Inferring aliasing and encapsulation properties for java
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Application-aware snoop filtering for low-power cache coherence in embedded multiprocessors
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Dataflow analysis for concurrent programs using datarace detection
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Full functional verification of linked data structures
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Parametric prediction of heap memory requirements
Proceedings of the 7th international symposium on Memory management
Types for atomicity: Static checking and inference for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Verifying Dynamic Pointer-Manipulating Threads
FM '08 Proceedings of the 15th international symposium on Formal Methods
Efficient Stateful Dynamic Partial Order Reduction
SPIN '08 Proceedings of the 15th international workshop on Model Checking Software
Dynamic Model Checking with Property Driven Pruning to Detect Race Conditions
ATVA '08 Proceedings of the 6th International Symposium on Automated Technology for Verification and Analysis
Semi-sparse flow-sensitive pointer analysis
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Techniques for efficient placement of synchronization primitives
Proceedings of the 14th ACM SIGPLAN symposium on Principles and practice of parallel programming
On transforming Java-like programs into memory-predictable code
Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems
Program Instrumentation and Run-Time Analysis of Scoped Memory in Java
Electronic Notes in Theoretical Computer Science (ENTCS)
IEEE Transactions on Very Large Scale Integration (VLSI) Systems
Causal dataflow analysis for concurrent programs
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
Composable specifications for structured shared-memory communication
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
ACM Transactions on Design Automation of Electronic Systems (TODAES)
Compositional bitvector analysis for concurrent programs with nested locks
SAS'10 Proceedings of the 17th international conference on Static analysis
Static analysis of dynamic schedules and its application to optimization of parallel programs
LCPC'10 Proceedings of the 23rd international conference on Languages and compilers for parallel computing
Boosting the performance of flow-sensitive points-to analysis using value flow
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
A sound analysis for secure information flow using abstract memory graphs
FSEN'09 Proceedings of the Third IPM international conference on Fundamentals of Software Engineering
Optimizing c multithreaded memory management using thread-local storage
CC'05 Proceedings of the 14th international conference on Compiler Construction
Programming languages for real-time systems
Embedded Systems Design
Securing mobile agents control flow using opaque predicates
KES'05 Proceedings of the 9th international conference on Knowledge-Based Intelligent Information and Engineering Systems - Volume Part III
Speculative optimizations for parallel programs on multicores
LCPC'09 Proceedings of the 22nd international conference on Languages and Compilers for Parallel Computing
Flow-sensitive pointer analysis for millions of lines of code
CGO '11 Proceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization
A type and effect system for determinism in multithreaded programs
ESOP'12 Proceedings of the 21st European conference on Programming Languages and Systems
End-to-end sequential consistency
Proceedings of the 39th Annual International Symposium on Computer Architecture
Scalable flow-sensitive pointer analysis for java with strong updates
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Practical Integrated Analysis of Pointers, Dataflow and Control Flow
ACM Transactions on Programming Languages and Systems (TOPLAS)
Compiler-Guided identification of critical sections in parallel code
CC'13 Proceedings of the 22nd international conference on Compiler Construction
Analyzing memory ownership patterns in C libraries
Proceedings of the 2013 international symposium on memory management
Synthesising implicit contracts
Proceedings of the Fourteenth International Conference on Artificial Intelligence and Law
Parallel flow-sensitive pointer analysis by graph-rewriting
PACT '13 Proceedings of the 22nd international conference on Parallel architectures and compilation techniques
Time- and space-efficient flow-sensitive points-to analysis
ACM Transactions on Architecture and Code Optimization (TACO)
Hi-index | 0.00 |
This paper presents a new combined pointer and escape analysis for multithreaded programs. The algorithm uses a new abstraction called parallel interaction graphs to analyze the interactions between threads and extract precise points-to, escape, and action ordering information for objects accessed by multiple threads. The analysis is compositional, analyzing each method or thread once to extract a parameterized analysis result that can be specialized for use in any context. It is also capable of analyzing programs that use the unstructured form of multithreading present in languages such as Java and standard threads packages such as POSIX threads.We have implemented the analysis in the MIT Flex compiler for Java and used the extracted information to 1) verify that programs correctly use region-based allocation constructs, 2) eliminate dynamic checks associated with the use of regions, and 3) eliminate unnecessary synchronization. Our experimental results show that analyzing the interactions between threads significantly increases the effectiveness of the region analysis and region check elimination, but has little effect for synchronization elimination.