Re: JMark test

Date view Thread view Subject view Author view

From: Godmar Back (gback@cs.utah.edu)
Date: Thu Dec 10 1998 - 19:58:58 EST


I saw the patch, applied it, but it didn't change anything.

I think the problem is now that we reenter the jitter, and clobber
maxStack and maxLocal, which are global.

Here's a trace:

verifyMethod 0x201030: java/lang/ClassLoader.findSystemClass
verifyMethod 0x201030: codeInfo = 0x3af648
tidyVerifyMethod 0x201030: clearing codeInfo 0x3af648
<JIT: java/lang/ClassLoader.findSystemClass(Ljava/lang/String;)Ljava/lang/Class; time 0ms (1656ms) @ 0x4e5f08>
verifyMethod 0x201030: java/lang/ClassLoader.resolveClass
verifyMethod 0x201030: codeInfo = 0x3af648
tidyVerifyMethod 0x201030: clearing codeInfo 0x3af648
<JIT: java/lang/ClassLoader.resolveClass(Ljava/lang/Class;)V time 0ms (1656ms) @ 0x4e5c88>
verifyMethod 0x201030: setup.decompressStream
verifyMethod 0x201030: codeInfo = 0x56e3f8
tidyVerifyMethod 0x201030: clearing codeInfo 0x56e3f8
<JIT: setup.decompressStream(Ljava/io/FileInputStream;)Ljava/io/InputStream; time 1ms (1657ms) @ 0x583da8>
verifyMethod 0x201030: installshield/jshield/runtime/CompressedInputStream.<init>
verifyMethod 0x201030: codeInfo = 0x584110
tidyVerifyMethod 0x201030: clearing codeInfo 0x584110
<JIT: installshield/jshield/runtime/CompressedInputStream.<init>()V time 0ms (1657ms) @ 0x513520>
verifyMethod 0x201030: installshield/jshield/runtime/CompressedInputStream.equals
verifyMethod 0x201030: codeInfo = 0x56e3f8
verifyMethod 0x201030: java/util/zip/Inflater.<clinit>
verifyMethod 0x201030: codeInfo = 0x3af648
tidyVerifyMethod 0x201030: clearing codeInfo 0x3af648
<JIT: java/util/zip/Inflater.<clinit>()V time 0ms (1657ms) @ 0x605e60>
stackno 6, maxStack 1, maxLocal 0
assertion "stackno <= maxStack+maxLocal" failed: file "../../../kaffe/kaffe/kaffevm/jit/machine.c", line 268

Basically, I think it's jitting
installshield/jshield/runtime/CompressedInputStream.equals (0x56e3f8)
with this meth:

$2 = {name = 0x5393d0, signature = 0x543a30, accflags = 0x8001, idx = 0x1,
  stacksz = 0x3, localsz = 0x3, ncode = 0x471d5d, c = {ncode = {
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      ncode_start = 0x4e5f88, ncode_end = 0x38}, bcode = {code = 0x4e5f88,
      codelen = 0x38}}, class = 0x512420, lines = 0x5124e0,
  exception_table = 0x0, ndeclared_exceptions = 0x0, declared_exceptions = 0x0}

then it all the sudden starts jitting java/util/zip/Inflater, which
clobbers its maxStack/maxLocal with 1/0, respective, and voila.

I now see what Tim might have been referring to: if we didn't COMPLETE
the class from when we load it, we wouldn't need the jitter here, and it
would ``work.''

Obviously, the proper solution is to make the jit state invocation
specific. We can always throw the few globals in codeinfo*.
Maybe I get to it after dinner.

Comments?

        - Godmar


Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:11 EDT