Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Interprocedural constant propagation
SIGPLAN '86 Proceedings of the 1986 SIGPLAN symposium on Compiler construction
A fresh look at optimizing array bound checking
PLDI '90 Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
Loop monotonic computations: an approach for the efficient run-time detection of races
TAV4 Proceedings of the symposium on Testing, analysis, and verification
Constant propagation with conditional branches
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Implementation of an array bound checker
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Dependence Analysis for Supercomputing
Dependence Analysis for Supercomputing
Optimization of range checking
SIGPLAN '82 Proceedings of the 1982 SIGPLAN symposium on Compiler construction
A portable machine-independent global optimizer--design and measurements
A portable machine-independent global optimizer--design and measurements
A reexamination of “Optimization of array subscript range checks”
ACM Transactions on Programming Languages and Systems (TOPLAS)
Accurate static branch prediction by value range propagation
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Elimination of redundant array subscript range checks
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Eliminating array bound checking through dependent types
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Design, implementation, and evaluation of optimizations in a just-in-time compiler
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
High performance computing with the Array package for Java: a case study using data mining
SC '99 Proceedings of the 1999 ACM/IEEE conference on Supercomputing
From flop to megaflops: Java for technical computing
ACM Transactions on Programming Languages and Systems (TOPLAS)
ABCD: eliminating array bounds checks on demand
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
MaJIC: compiling MATLAB for speed and responsiveness
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Elimination of Java array bounds checks in the presence of indirection
JGI '02 Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande
IEEE Transactions on Software Engineering
From Flop to MegaFlops: Java for Technical Computing
LCPC '98 Proceedings of the 11th International Workshop on Languages and Compilers for Parallel Computing
A Matlab Just-In-time Compiler
LCPC '00 Proceedings of the 13th International Workshop on Languages and Compilers for Parallel Computing-Revised Papers
Deriving Pre-conditions for Array Bound Check Elimination
PADO '01 Proceedings of the Second Symposium on Programs as Data Objects
Analysis of Irregular Single-Indexed Array Accesses and Its Applications in Compiler Optimizations
CC '00 Proceedings of the 9th International Conference on Compiler Construction
Automatic Removal of Array Memory Leaks in Java
CC '00 Proceedings of the 9th International Conference on Compiler Construction
A Framework for Optimizing Java Using Attributes
CC '01 Proceedings of the 10th International Conference on Compiler Construction
A Comprehensive Approach to Array Bounds Check Elimination for Java
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Soot - a Java bytecode optimization framework
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
Towards array bound check elimination in Java TM virtual machine language
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
A framework for optimizing Java using attributes
CASCON '00 Proceedings of the 2000 conference of the Centre for Advanced Studies on Collaborative research
Protecting C programs from attacks via invalid pointer dereferences
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Effectiveness of cross-platform optimizations for a java just-in-time compiler
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
Optimization of range checking
ACM SIGPLAN Notices - Best of PLDI 1979-1999
Implicit java array bounds checking on 64-bit architecture
Proceedings of the 18th annual international conference on Supercomputing
Overview of the IBM Java just-in-time compiler
IBM Systems Journal
Optimizing array reference checking in Java programs
IBM Systems Journal
Memory safety without garbage collection for embedded applications
ACM Transactions on Embedded Computing Systems (TECS)
Symbolic bounds analysis of pointers, array indices, and accessed memory regions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient and effective array bound checking
ACM Transactions on Programming Languages and Systems (TOPLAS)
Application of redundant computation in software performance analysis
Proceedings of the 5th international workshop on Software and performance
Using Static Analysis to Reduce Dynamic Analysis Overhead
Formal Methods in System Design
A class of polynomially solvable range constraints for interval analysis without widenings
Theoretical Computer Science - Tools and algorithms for the construction and analysis of systems (TACAS 2004)
Effective typestate verification in the presence of aliasing
Proceedings of the 2006 international symposium on Software testing and analysis
An algebraic array shape inference system for MATLAB®
ACM Transactions on Programming Languages and Systems (TOPLAS)
Implicit array bounds checking on 64-bit architectures
ACM Transactions on Architecture and Code Optimization (TACO)
Hardware/software optimization for array & pointer boundary checking against buffer overflow attacks
Journal of Parallel and Distributed Computing - Special issue: Security in grid and distributed systems
Enhancing server availability and security through failure-oblivious computing
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
Enforcing resource bounds via static verification of dynamic checks
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special Issue ESOP'05
Array bounds check elimination for the Java HotSpot™ client compiler
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Effective typestate verification in the presence of aliasing
ACM Transactions on Software Engineering and Methodology (TOSEM)
Array bounds check elimination in the context of deoptimization
Science of Computer Programming
Fast bounds checking using debug register
HiPEAC'08 Proceedings of the 3rd international conference on High performance embedded architectures and compilers
Soot: a Java bytecode optimization framework
CASCON First Decade High Impact Papers
A framework for optimizing Java using attributes
CASCON First Decade High Impact Papers
Subregion analysis and bounds check elimination for high level arrays
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
On-the-fly structure splitting for heap objects
ACM Transactions on Architecture and Code Optimization (TACO) - HIPEAC Papers
Eliminating partially-redundant array-bounds check in the Android Dalvik JIT compiler
Proceedings of the 9th International Conference on Principles and Practice of Programming in Java
Automatic parallelization using the value evolution graph
LCPC'04 Proceedings of the 17th international conference on Languages and Compilers for High Performance Computing
Enforcing resource bounds via static verification of dynamic checks
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
A type system for static and dynamic checking of C++ pointers
Computer Languages, Systems and Structures
Hi-index | 0.00 |
Bound checks are introduced in programs for the run-time detection of array bound violations. Compile-time optimizations are employed to reduce the execution-time overhead due to bound checks. The optimizations reduce the program execution time through elimination of checks and propagation of checks out of loops. An execution of the optimized program terminates with an array bound violation if and only if the same outcome would have resulted during the execution of the program containing all array bound checks. However, the point at which the array bound violation occurs may not be the same. Experimental results indicate that the number of bound checks performed during the execution of a program is greatly reduced using these techniques.