view graal/GraalCompiler/src/com/sun/c1x/doc/IRInterpreter.txt @ 2509:16b9a8b5ad39

Renamings Runtime=>GraalRuntime and Compiler=>GraalCompiler
author Thomas Wuerthinger <thomas@wuerthinger.net>
date Wed, 27 Apr 2011 11:50:44 +0200
parents graal/Compiler/src/com/sun/c1x/doc/IRInterpreter.txt@9ec15d6914ca
children
line wrap: on
line source

Current status and remaining issues in the IRInterpreter for HIR (September/18/09)
=================================================================================

Known Problems:
With InterpretInvokedMethods disabled in C1XOptions:
(2 fails)
304: jtt/jvmni/JVM_GetClassContext01.java: (0) failed with false (expected true)
557: jtt/reflect/Class_newInstance02.java: (0) failed with true (expected !java.lang.IllegalAccessException)

The first problem is caused by the use of reflection in the IRInterpreter, and the calling stack is not as 
expected by the JVM_GetClassContext01 test case. The second one is due to the private constructor of Class_newInstance01.
Again, we are using reflection to call the newInstance() method to create an instance of class Class_newInstance01
from the IRInterpreter class, which raises an IllegalAccessException.
These are the only problems with all optimization levels.

With InterpretInvokedMethods enabled in C1XOptions:
(7 fails)
245: jtt/except/Catch_StackOverflowError_03.java: (0) failed with !java.lang.InstantiationException (expected 0)
304: jtt/jvmni/JVM_GetClassContext01.java: (0) failed with false (expected true)
311: jtt/lang/Bridge_method01.java: (0) failed with unexpected com.sun.c1x.ci.CiBailout (expected 1)
557: jtt/reflect/Class_newInstance02.java: (0) failed with true (expected !java.lang.IllegalAccessException)
572: jtt/reflect/Invoke_virtual01.java: (1) failed with unexpected com.sun.c1x.ci.CiBailout (expected 55)
575: jtt/reflect/Reflection_getCallerClass01.java: (1) failed with com.sun.c1x.debug.IRInterpreter$Evaluator (expected jtt.reflect.Reflection_getCallerClass01$Caller1)
592: jtt/threads/Thread_isInterrupted04.java: (0) failed with false (expected true)

Those are also due to reflection usage. The last problem has not been investigated.