Loading...
Please wait, while we are loading the content...
Similar Documents
An annotation-aware java virtual machine implementation (1999).
| Content Provider | CiteSeerX |
|---|---|
| Author | Azevedo, Ana Nicolau, Alex Hummel, Joe |
| Abstract | The Javabytecode language lacks expressiveness for traditional compiler optimizations, making this portable, secure software distribution format inefficient as a program representation for high performance. This inefficiency results from the underlying stackmodel,aswell as the fact that manybytecode operations intrinsically include sub-operations (e.g., iaload includes the address computation, array bounds checks and the actual load of the array element). The stack model, with no operand registers and limiting access to the top of the stack, prevents the reuse of values and bytecode reordering. In addition, the language has no mechanism to indicate which sub-operations in the Javabytecode stream are redundant or subsumed by previous ones. As a consequence, the Javabytecode language inhibits the expression of important compiler optimizations, including register allocation and instruction scheduling. The Javabytecode stream generated byaJavabytecode compiler is a significantly under-optimized program representation. The most common solution to overcome this inefficiency is the use of a Just-inTime (JIT) compiler to not only generate native code, but perform optimization as well. However, the latter is a time consuming operation in an already time-constrained translation process. In this paper we present an alternative to an optimizing JIT compiler that makes use of code annotations generated byaJavabytecode compiler. These annotations carry information concerning compiler optimizations. During the translation process, an annotation-aware Java Virtual Machine (JVM) system then uses this information to produce high performance native code without performing much of the necessary analyses or transformations. We describe the implementation of a prototype of... |
| File Format | |
| Publisher Date | 1999-01-01 |
| Access Restriction | Open |
| Subject Keyword | Annotation-aware Java Virtual Machine Implementation Byajavabytecode Compiler Javabytecode Stream Javabytecode Language Instruction Scheduling Important Compiler Optimization Manybytecode Operation Common Solution Bytecode Reordering Program Representation High Performance Native Code Register Allocation Operand Register Actual Load High Performance Secure Software Distribution Format Inefficient Inefficiency Result Code Annotation Annotation-aware Java Virtual Machine Necessary Analysis Under-optimized Program Representation Jit Compiler Address Computation Compiler Optimization Previous One Perform Optimization Array Bound Check Stack Model Translation Process Native Code Traditional Compiler Optimization Array Element Time-constrained Translation Process |
| Content Type | Text |
| Resource Type | Article |