L2 compiler
Status:
Currently, the L2 compiler resides within three packages:
org.jnode.vm.compiler.ir
- Intermediate representation
- IRGenerator creates a BootableArrayList of "quads" for each bytecode operation
- Includes LinearScanAllocator which is machine independent, this has been tested and appears to work well
org.jnode.vm.compiler.ir.quad
- Classes representing different types of operations
- Most of the basic operations and flow control is complete
- Method calls, field and method refs, try/catch/throw not yet implemented
- Each quad implements doPass2() method, which performs many types of optimizations
org.jnode.vm.x86.compiler.l2
- x86 machine specific classes
- X86CodeGenerator visits quad list and generates native code
- X86RegisterPool defines x86 regs used by LinearScanAllocator
TO DO:
1. Implement methods in X86CodeGenerator
2. Process remaining bytecodes (IRGenerator), define more quads as needed
3. Hook in L2 compiler with native compiler framework
- Login to post comments
reference material?
hi, is there any refernce material available, or is this compiler a complete new development attempt?
What are the remaining bytecodes?
Andreas