Check out the new USENIX Web site. next up previous
Next: Optimizing Compiler Up: Establishing functionality Previous: IA32 Assembler

Baseline Compiler

A baseline compiler actually consists of two main components of roughly equal size: a target-independent portion that is responsible for generating GC maps and other descriptive information and a target-specific code generator. The heart of baseline compiler code generation executes a switch statement that emits code for each Java bytecode. Most of these 209 cases present simple exercises that are ``solved'' by emitting a dozen or fewer straight line assembler instructions. For those cases that are more complicated -- for instance, the seven bytecodes that sometimes entail class loading -- the internal structure of the case was imported from the PowerPC baseline compiler. We were careful to verify that each case (except for some of the ``wide'' variants) were exercised against a library of bytecode tests developed in conjunction with that original baseline compiler.

Stephen Fink 2002-05-23