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

C2 remove_main_post_loops: check if main-loop belongs to pre-loop, not just assert

XMLWordPrintable

    • b15
    • generic
    • generic

        # A fatal error has been detected by the Java Runtime Environment:
        #
        # Internal Error (workspace/open/src/hotspot/share/opto/loopTransform.cpp:3304), pid=58340, tid=40195
        # assert(locate_pre_from_main(main_head) == cl) failed: bad main loop
        #
        # JRE version: Java(TM) SE Runtime Environment (23.0+13) (fastdebug build 23-ea+13-927)
        # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 23-ea+13-927, compiled mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, bsd-aarch64)
        # No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

        Current thread (0x00000001200ca410): JavaThread "C2 CompilerThread0" daemon [_thread_in_native, id=24835, stack(0x000000016f170000,0x000000016f373000) (2060K)]

        Current CompileTask:
        C2:302 73 b Test::mainTest (540 bytes)

        Stack: [0x000000016f170000,0x000000016f373000], sp=0x000000016f36e970, free space=2042k
        Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
        V [libjvm.dylib+0x112b6bc] VMError::report_and_die(int, char const*, char const*, char*, Thread*, unsigned char*, void*, void*, char const*, int, unsigned long)+0x564 (loopTransform.cpp:3304)
        V [libjvm.dylib+0x112bedc] VMError::report_and_die(Thread*, unsigned int, unsigned char*, void*, void*)+0x0
        V [libjvm.dylib+0x55bee4] print_error_for_unit_test(char const*, char const*, char*)+0x0
        V [libjvm.dylib+0xc72bb0] IdealLoopTree::remove_main_post_loops(CountedLoopNode*, PhaseIdealLoop*)+0x120
        V [libjvm.dylib+0xc7300c] IdealLoopTree::do_remove_empty_loop(PhaseIdealLoop*)+0x134
        V [libjvm.dylib+0xc74510] IdealLoopTree::iteration_split_impl(PhaseIdealLoop*, Node_List&)+0x84
        V [libjvm.dylib+0xc74ccc] IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0xec
        V [libjvm.dylib+0xc74d98] IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x1b8
        V [libjvm.dylib+0xc74d98] IdealLoopTree::iteration_split(PhaseIdealLoop*, Node_List&)+0x1b8
        V [libjvm.dylib+0xc950e0] PhaseIdealLoop::build_and_optimize()+0xaa8
        V [libjvm.dylib+0x4d5158] PhaseIdealLoop::PhaseIdealLoop(PhaseIterGVN&, LoopOptsMode)+0x184
        V [libjvm.dylib+0x4c7b30] PhaseIdealLoop::optimize(PhaseIterGVN&, LoopOptsMode)+0x6c
        V [libjvm.dylib+0x4c7fa8] Compile::optimize_loops(PhaseIterGVN&, LoopOptsMode)+0x68
        V [libjvm.dylib+0x4c13a0] Compile::Optimize()+0x98c
        V [libjvm.dylib+0x4bf810] Compile::Compile(ciEnv*, ciMethod*, int, Options, DirectiveSet*)+0x1234
        V [libjvm.dylib+0x388fd0] C2Compiler::compile_method(ciEnv*, ciMethod*, int, bool, DirectiveSet*)+0x1e0
        V [libjvm.dylib+0x4ddc50] CompileBroker::invoke_compiler_on_method(CompileTask*)+0x854
        V [libjvm.dylib+0x4dd094] CompileBroker::compiler_thread_loop()+0x348
        V [libjvm.dylib+0x8b37d8] JavaThread::thread_main_inner()+0x1dc
        V [libjvm.dylib+0x106f57c] Thread::call_run()+0xf4
        V [libjvm.dylib+0xe325a0] thread_native_entry(Thread*)+0x138
        C [libsystem_pthread.dylib+0x7240] _pthread_start+0x94

          1. FuzzerUtils.java
            13 kB
          2. hs_err_pid58340.log
            87 kB
          3. image1_CFG_before_assert.png
            image1_CFG_before_assert.png
            113 kB
          4. Reduced.java
            0.5 kB
          5. Test.java
            7 kB

              epeter Emanuel Peter
              dholmes David Holmes
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated:
                Resolved: