Proceedings of the ACM SIGPLAN 1998 Conference on Programming Language Design and Implementation 1998
DOI: 10.1145/277650.277740
|View full text |Cite
|
Sign up to set email alerts
|

Fast, effective code generation in a just-in-time Java compiler

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
46
0
3

Year Published

2000
2000
2016
2016

Publication Types

Select...
6
1
1

Relationship

0
8

Authors

Journals

citations
Cited by 112 publications
(49 citation statements)
references
References 15 publications
0
46
0
3
Order By: Relevance
“…The Intel JIT compiler uses lazy code selection in the context of on-the-fly register allocation to speed up compilation [1]. Previously encountered bytecode sequences that generated the current value in a register are cached, as well as possible bytecode aUases, so that future equivalent sequences can simply be replaced by an instantiation of the register.…”
Section: Related Workmentioning
confidence: 99%
See 2 more Smart Citations
“…The Intel JIT compiler uses lazy code selection in the context of on-the-fly register allocation to speed up compilation [1]. Previously encountered bytecode sequences that generated the current value in a register are cached, as well as possible bytecode aUases, so that future equivalent sequences can simply be replaced by an instantiation of the register.…”
Section: Related Workmentioning
confidence: 99%
“…The inliner is also responsible for inlining fast, common case handlers for the checkcast and instanceof bytecodes, which must execute a costly class hierarchy search if the object class is not equivalent to the requested class. [2] cmp [Lll [1] [2] cmp [LU [1] 2 iaload [3] cbranch ult [2] ,, [31 cbranch ult [2] 3 iconst_l ' C -> [51 c"^ -> [51 4 iadd [4] call bad array_idx [4] call bad array_idx 5 aload 0 (5) target [5] target 6 iload_2 [6] const 2 [6] const 2 7 iastore [7] sll [Lll [6] [7] sll [Lll [6] Equivalent C [8] Figure 4. Array accesses bytecodes are decomposed so that optimizations can be performed on their components.…”
Section: Inlining and Specializationmentioning
confidence: 99%
See 1 more Smart Citation
“…The execution engine, the Common Language Runtime (CLR), is a stack-based Virtual Machine (VM) which executes a portable bytecode: the Common Intermediate Language (CIL) [10]. The CLR enforces type safety through its bytecode verifier (BCV), it supports polymorphism, the memory is garbage collected and the bytecode is Just-In-Time [1,21] compiled to native code.…”
Section: Introductionmentioning
confidence: 99%
“…JVM is designed so that it can be efficiently implemented on a large variety of platforms. JVM can be implemented directly in hardware as a JVM processor [2], by means of a software interpreter, or by means of a just-in-time compiler [3,4] which compiles bytecodes to native machine code just before the code is executed and caches it for future execution.…”
Section: Introductionmentioning
confidence: 99%