Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6958833

Compressed OOPs affect LCM causing spills

    Details

    • Subcomponent:
    • CPU:
      x86
    • OS:
      generic

      Description

      % cat .hotspot_compiler
      print Decompiler::decodeConstantPool

      % /java/re/jdk/7/latest/binaries/solaris-amd64/fastdebug/bin/java -d64 -XX:+UseCompressedOops -XX:+PrintCompilation -Xbatch -XX:CICompilerCount=1 -Xmx128M -jar GCBasher.jar -time:300000
      ...

      0b6 B6: # B56 B7 <- B60 B5 Freq: 0.999979
      0b6
      0b6 # checkcastPP of R8
      0b6 movq R10, [rsp + #0] # spill
      0ba movq R10, R10 # ptr -> long
      0ba encode_heap_oop_not_null R11,R8
      13d movq R8, [rsp + #0] # spill
      141 movl [R8 + #24 (8-bit)], R11 # compressed ptr ! Field Decompiler.constantPool
      145 shrq R10, #9
      149 movq R11, 0xfffffd7ff19fe000 # ptr
      153 movb [R11 + R10], R12 # short/char (R12_heapbase==0)
      157 cmpl RBP, #1
      15a jle B56 P=0.010631 C=73.000000
      15a

      Without COOP:

      0a0 B6: # B57 B7 <- B61 B5 Freq: 0.999979
      0a0
      0a0 # checkcastPP of R11
      0a0 movq R10, [rsp + #0] # spill
      0a4 movq [R10 + #40 (8-bit)], R11 # ptr ! Field Decompiler.constantPool
      0a8 movq R10, R10 # ptr -> long
      0a8 shrq R10, #9
      0ac movq R11, 0xff7ffd813eede000 # ptr
      0b6 movb [R11 + R10], #0 # byte
      0bb cmpl RBP, #1
      0be jle B57 P=0.010631 C=73.000000
      0be

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              kvn Vladimir Kozlov
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Imported:
                Indexed: