view graal/GraalCompiler/src/com/sun/c1x/doc/IRInterpreter.txt @ 2616:3558ca7088c0

FrameState and Graphviz changes: * removed popx, pushx methods from GraphBuilder * FrameState subclass of Value * added String shortName() to Node * added GraphvizPrinter option to use short names * small hack in GraphvizPrinter: omit FrameState->Local connections * added GraalGraphviz to implicit classpatch (read from GRAAL env var)
author Lukas Stadler <lukas.stadler@jku.at>
date Mon, 09 May 2011 17:00:25 +0200
parents 16b9a8b5ad39
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.