Features of modern programming languages such as objects, method invocations, and automatic memory management have important software engineering benefits. Unfortunately, each of these features also have a performance overhead, and thus programs written in modern languages typically run slower than those written in traditional languages. This dissertation describes and evaluates fast techniques for reducing the overhead of two features of modern programming languages: objects and method invocations. To address the overhead of objects, and more specifically linked structures, we have designed a new alias analysis, type-based alias analysis (scTBAA), which uses types to disambiguate memory references in Modula-3 programs. scTBAA is fast: it i...
To use modern hardware effectively, compilers need extensive control-flow information. Unfortunately...
References are a programming language construct that lets a programmer access a datum invariant of i...
References are a programming language construct that lets a programmer access a datum invariant of i...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
This paper evaluates three alias analyses based on program-ming language types. The first analysis u...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
Object-oriented programming languages provide many software engineering benefits, but these often co...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
Object-oriented programming languages provide many software engineering benefits, but these often co...
Object-oriented programming languages provide many software engineering benefits, but these often co...
Object-oriented programming languages provide many software engineering benefits, but these often co...
High-performance architectures rely upon powerful optimizing and parallelizing compilers to maximize...
This thesis examines three problems arising in the construction of an ambitious optimizing compiler ...
To use modern hardware effectively, compilers need extensive control-flow information. Unfortunately...
References are a programming language construct that lets a programmer access a datum invariant of i...
References are a programming language construct that lets a programmer access a datum invariant of i...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
This paper evaluates three alias analyses based on program-ming language types. The first analysis u...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
Object-oriented programming languages provide many software engineering benefits, but these often co...
This paper evaluates three alias analyses based on programming language types. The first analysis us...
Object-oriented programming languages provide many software engineering benefits, but these often co...
Object-oriented programming languages provide many software engineering benefits, but these often co...
Object-oriented programming languages provide many software engineering benefits, but these often co...
High-performance architectures rely upon powerful optimizing and parallelizing compilers to maximize...
This thesis examines three problems arising in the construction of an ambitious optimizing compiler ...
To use modern hardware effectively, compilers need extensive control-flow information. Unfortunately...
References are a programming language construct that lets a programmer access a datum invariant of i...
References are a programming language construct that lets a programmer access a datum invariant of i...