view graal/Compiler/bin/com/sun/c1x/doc/backend_open_issues.txt @ 2507:9ec15d6914ca

Pull over of compiler from maxine repository.
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Wed, 27 Apr 2011 11:43:22 +0200
parents
children
line wrap: on
line source

Remaining Issues in the C1X backend (after the port July-Sep 09)
======================================================================

Maxine/Inspector Related Open Issues:
   - Global stubs: Change calling convention (no longer write to callee stack as this makes stepping through the instructions for saving the parameters to global stubs impossible in the inspector)
   - Reference maps: Corrently implement TargetMethod.prepareReferenceMap for C1XTargetMethod (checking for the need to stack walk a possible callee saved target method) and call it from Maxine
   - Disassembler: The Maxine disassembler still does not correctly display every machine code instruction issued by C1X
   - MaxRiRuntime and C1XTargetMethod have fixed dependencies on the X86 parts (instruction decoding, registers, calling convention), should be factored out

Compile-Time Performance Improvements:
   - Consider deleting the LIRItem class
   - Make sure that LIROperand objects are not shared among LIR instructions and can therefore be directly modified by the LinearScan register allocator (no more need for the lazy creation of LIRAddress objects in the LIRInstruction class)
   
Run-Time Performance Improvements:
   - Store mapping between machine code location and bytecode index in the target method (remove arguments from global stub calls), this decreases the number of necessary parameters especially for resolution instructions.
   - Use Inline Cache on virtual method calls

Better Portability:
   - Integrate XIR; consider using CiLocation / CiConstant in XIR
   - The JIT adapter frames should be a more general mechanism that receives two calling conventions (in form of an array of locations) and adapts between them automatically
   - Have the possibility to register intrinsics by specifying XIR code