JDK-6394013 : C2: Remove VerifyOpto
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 9,10,11,12,13,14
  • Priority: P5
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2006-03-04
  • Updated: 2019-08-08
  • Resolved: 2019-08-05
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 14
14 b09Fixed
Related Reports
Duplicate :  
Relates :  
Relates :  
Description
java_g -Xcomp -XX:+VerifyOpto forloop
 
 fails with the following error message:

#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
#  Internal Error
(/export1/jdk142-update/ws/fcs/hotspot/src/share/vm/opto/phaseX.hpp, 208 [ Patched ]), pid=15438, tid=11 # # Java VM: Java HotSpot(TM) Server VM (1.4.2_10-b03-debug compiled mode) # # Error:
assert(allow_progress(),"No progress allowed during verification")



forloop.java is a simple for loop  program:

public class forloop{
    public static void main(String[] args){
        for ( int i=0; i<100; i++ )
            i= i+1;
    }
}


During the optimization phase, first it optimizes the graph and then if the  "VerifyOpto" flag is enabled, then it disables _allow_progress  variable and optimizes the graph again. Here the expectation is, the graph should be fully optimized at this point of time and no more optimization is required.Unfortunately in this case, it tries to modify the graph, by removing a dead node. So we are hitting this assert.

Comments
URL: https://hg.openjdk.java.net/jdk/jdk/rev/9c523692db7e User: thartmann Date: 2019-08-05 06:03:44 +0000
05-08-2019

http://cr.openjdk.java.net/~thartmann/6394013/webrev.00/
29-07-2019

Even more abundantly a year later... :-)
29-02-2016

It is abundantly past time to either fix or kill VerifyOpto. Don't fix. Hulk, smash.
02-03-2015

[~kvn], should we remove the code and the option as Chuck suggested in 2006?
19-08-2014

ILW=VerifyOpto broken but should perhaps not be fixed, verify only, none=LLH=P5
14-05-2014

java version "1.9.0-ea-fastdebug" Java(TM) SE Runtime Environment (build 1.9.0-ea-fastdebug-b05) Java HotSpot(TM) 64-Bit Server VM (build 25.0-b62-fastdebug, mixed mode) $ java -Xcomp -XX:+VerifyOpto -version # To suppress the following error report, specify this argument # after -XX: or in .hotspotrc: SuppressErrorAt=/phaseX.hpp:322 # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (/HUDSON3/workspace/9-2-build-linux-amd64/jdk9/211/hotspot/src/share/vm/opto/phaseX.hpp:322), pid=5038, tid=140005788014336 # assert(allow_progress()) failed: No progress allowed during verification # # JRE version: Java(TM) SE Runtime Environment (9.0-b05) (build 1.9.0-ea-fastdebug-b05) # Java VM: Java HotSpot(TM) 64-Bit Server VM (25.0-b62-fastdebug compiled mode linux-amd64 compressed oops) # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again # # An error report file with more information is saved as: # /tmp/hs_err_pid5038.log # # Compiler replay data is saved as: # /tmp/replay_pid5038.log # # If you would like to submit a bug report, please visit: # http://bugreport.sun.com/bugreport/crash.jsp #
14-05-2014