Making pure object-oriented languages practical
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Towards better inlining decisions using inlining trials
LFP '94 Proceedings of the 1994 ACM conference on LISP and functional programming
Dynamo: a transparent dynamic optimization system
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Partial method compilation using dynamic profile information
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A region-based compilation technique for a Java just-in-time compiler
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
X10: an object-oriented approach to non-uniform cluster computing
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Function Outlining and Partial Inlining
SBAC-PAD '05 Proceedings of the 17th International Symposium on Computer Architecture on High Performance Computing
HotpathVM: an effective JIT compiler for resource-constrained devices
Proceedings of the 2nd international conference on Virtual execution environments
The DaCapo benchmarks: java benchmarking development and analysis
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Polyglot: an extensible compiler framework for Java
CC'03 Proceedings of the 12th international conference on Compiler construction
Aggressive Function Splitting for Partial Inlining
INTERACT '11 Proceedings of the 2011 15th Workshop on Interaction between Compilers and Computer Architectures
Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE!'11, AOOPES'11, NEAT'11, & VMIL'11
A trace-based Java JIT compiler retrofitted from a method-based compiler
CGO '11 Proceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization
Hi-index | 0.00 |
This paper proposes two novel techniques for partial inlining. Context-driven partial inlining uses information available to the compiler at a call site to prune the callee prior to assessing whether the (pruned) body of the callee should be inlined. Guarded partial inlining seeks to inline the frequently taken fast path through the callee along with a test and a call to the original method to handle those instances where the fast path is not taken. A fragile implementation of guarded partial inlining is described. An example, very loosely based on a simplified web server, is fabricated. Experimental evidence establishes the superiority of partial inlining over no inlining and over complete inlining on this contrived example. We show that these approaches to partial inlining are applicable in situations where previous approaches are not. Potential effects of the widespread availability of partial inlining on software development are considered.