Object-oriented languages such as Java and Smalltalk provide a uniform object reference model, allowing objects to be conveniently shared. If implemented directly, these uniform reference models can suffer in efficiency due to additional memory dereferences and memory management operations. Automatic inline allocation of child objects within parent objects can reduce overheads of heap-allocated pointer-referenced objects. We present three compiler analyses to identify inlinable fields by tracking accesses to heap objects. These analyses span a range from local data flow to adaptive whole-program, flow-sensitive inter-procedural analysis. We measure their cost and effectiveness on a suite of moderate-sized C++ programs (up to 30,000 lines in...
Programmers increasingly rely on managed languages (e.g. Java and C#) to develop applications faster...
Pointer analysis has recently been a subject of active research. The focus of most techniques is on:...
We present a set of techniques for reducing the memory consumption of object-oriented programs. Thes...
Automatic object inlining [19, 20] transforms heap data structures by fusing parent and child object...
Object combining tries to put objects together that have roughly the same life times in order to red...
Heap-allocated objects play an important role in many modern programs. Various results have shown th...
Object-oriented languages, like Java, encourage the use of many small objects linked together by eld...
Allocating objects on the stack rather than the heap reduces the overhead of garbage collection and ...
This paper describes Automatic Pool Allocation, a transformation framework that segregates distinct ...
The program heap is fundamentally a simple mathematical concept --- a set of objects and a connectiv...
Despite the potential importance of data structure layouts and traversal patterns, compiler transfor...
Abstract. We present a set of techniques for reducing the memory consumption of object-oriented prog...
Points-to analysis addresses a fundamental problem in program analysis: determining statically which...
Object Oriented Programming has flourished in many areas ranging from web-oriented microservices, da...
Abstract. We present a simple, unified approach for the analysis and optimization of object field an...
Programmers increasingly rely on managed languages (e.g. Java and C#) to develop applications faster...
Pointer analysis has recently been a subject of active research. The focus of most techniques is on:...
We present a set of techniques for reducing the memory consumption of object-oriented programs. Thes...
Automatic object inlining [19, 20] transforms heap data structures by fusing parent and child object...
Object combining tries to put objects together that have roughly the same life times in order to red...
Heap-allocated objects play an important role in many modern programs. Various results have shown th...
Object-oriented languages, like Java, encourage the use of many small objects linked together by eld...
Allocating objects on the stack rather than the heap reduces the overhead of garbage collection and ...
This paper describes Automatic Pool Allocation, a transformation framework that segregates distinct ...
The program heap is fundamentally a simple mathematical concept --- a set of objects and a connectiv...
Despite the potential importance of data structure layouts and traversal patterns, compiler transfor...
Abstract. We present a set of techniques for reducing the memory consumption of object-oriented prog...
Points-to analysis addresses a fundamental problem in program analysis: determining statically which...
Object Oriented Programming has flourished in many areas ranging from web-oriented microservices, da...
Abstract. We present a simple, unified approach for the analysis and optimization of object field an...
Programmers increasingly rely on managed languages (e.g. Java and C#) to develop applications faster...
Pointer analysis has recently been a subject of active research. The focus of most techniques is on:...
We present a set of techniques for reducing the memory consumption of object-oriented programs. Thes...