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

[lworld] Disable CDS if InlineTypePassFieldsAsArgs has changed

XMLWordPrintable

      When the attached patch to convert a few JDK classes to ref-default primitive classes, the following compiler tests fail with this assertion when the CDS sharing is on:
         assert(pos == TypeFunc::Parms + arg_cnt) failed: wrong number of arguments

      compiler/valhalla/inlinetypes/TestArrays.java
      compiler/valhalla/inlinetypes/TestBasicFunctionality.java
      compiler/valhalla/inlinetypes/TestCallingConvention.java
      compiler/valhalla/inlinetypes/TestIntrinsics.java
      compiler/valhalla/inlinetypes/TestJNICalls.java
      compiler/valhalla/inlinetypes/TestLWorld.java
      compiler/valhalla/inlinetypes/TestMethodHandles.java
      compiler/valhalla/inlinetypes/TestNullableArrays.java
      compiler/valhalla/inlinetypes/TestNullableInlineTypes.java
      compiler/valhalla/inlinetypes/TestOnStackReplacement.java

      # Internal Error (/Users/mlchung/ws/valhalla/lworld-closed/open/src/hotspot/share/opto/type.cpp:2163), pid=52390, tid=23299
      # assert(pos == TypeFunc::Parms + arg_cnt) failed: wrong number of arguments

      Current CompileTask:
      C2: 2782 924 b 4 compiler.lib.ir_framework.test.TestVM::getAnnotation (45 bytes)

      Stack: [0x0000700006667000,0x0000700006767000], sp=0x00007000067644e0, free space=1013k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.dylib+0x1190899] VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x6e9
      V [libjvm.dylib+0x1190f1b] VMError::report_and_die(Thread*, void*, char const*, int, char const*, char const*, __va_list_tag*)+0x3b
      V [libjvm.dylib+0x5fe96d] report_vm_error(char const*, int, char const*, char const*, ...)+0xdd
      V [libjvm.dylib+0x11057ab] TypeTuple::make_domain(ciMethod*, bool)+0x91b
      V [libjvm.dylib+0x111263c] TypeFunc::make(ciMethod*, bool)+0x8c
      V [libjvm.dylib+0x82cc11] GraphKit::record_profiled_arguments_for_speculation(ciMethod*, Bytecodes::Code)+0x31
      V [libjvm.dylib+0x6a2ff4] Parse::do_call()+0xa54
      V [libjvm.dylib+0xed71c4] Parse::do_one_bytecode()+0x194
      V [libjvm.dylib+0xebfbe1] Parse::do_one_block()+0x441
      V [libjvm.dylib+0xebdb68] Parse::do_all_blocks()+0x3f8
      V [libjvm.dylib+0xeb8dad] Parse::Parse(JVMState*, ciMethod*, float)+0x112d
      V [libjvm.dylib+0x48207b] ParseGenerator::generate(JVMState*)+0xab
      V [libjvm.dylib+0x59c5d3] Compile::Compile(ciEnv*, ciMethod*, int, bool, bool, bool, bool, bool, DirectiveSet*)+0x1523
      V [libjvm.dylib+0x480599] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x109
      V [libjvm.dylib+0x5be252] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x7a2
      V [libjvm.dylib+0x5bd890] CompileBroker::compiler_thread_loop()+0x2c0
      V [libjvm.dylib+0x10e12c4] JavaThread::thread_main_inner()+0x254
      V [libjvm.dylib+0x10de137] Thread::call_run()+0x177
      V [libjvm.dylib+0xe8e110] thread_native_entry(Thread*)+0x150
      C [libsystem_pthread.dylib+0x6109] _pthread_start+0x94
      C [libsystem_pthread.dylib+0x1b8b] thread_start+0xf

            iklam Ioi Lam
            mchung Mandy Chung
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: