def get_vm(): """ Gets the name of the currently selected JVM variant. """ vm = _jvmci_get_vm() if JVMCI_VERSION >= 9: assert isinstance(vm, VM) return vm.jvmVariant else: assert isinstance(vm, str) return vm
def ctw(args, extraVMarguments=None): """run CompileTheWorld""" defaultCtwopts = '-Inline' parser = ArgumentParser(prog='mx ctw') parser.add_argument('--ctwopts', action='store', help='space separated JVMCI options used for CTW compilations (default: --ctwopts="' + defaultCtwopts + '")', default=defaultCtwopts, metavar='<options>') parser.add_argument('--cp', '--jar', action='store', help='jar or class path denoting classes to compile', metavar='<path>') args, vmargs = parser.parse_known_args(args) if args.ctwopts: # Replace spaces with '#' since -G: options cannot contain spaces vmargs.append('-G:CompileTheWorldConfig=' + re.sub(r'\s+', '#', args.ctwopts)) if args.cp: cp = os.path.abspath(args.cp) else: if JVMCI_VERSION < 9: cp = join(get_jvmci_jdk().home, 'jre', 'lib', 'rt.jar') else: cp = join(get_jvmci_jdk().home, 'modules', 'java.base') + os.pathsep + \ join(get_jvmci_jdk().home, 'lib', 'modules', 'bootmodules.jimage') vmargs.append('-G:CompileTheWorldExcludeMethodFilter=sun.awt.X11.*.*') # suppress menubar and dock when running on Mac; exclude x11 classes as they may cause vm crashes (on Solaris) vmargs = ['-Djava.awt.headless=true'] + vmargs vm = get_vm() if JVMCI_VERSION >= 9: jvmciMode = _jvmci_get_vm().jvmciMode if jvmciMode == 'disabled': vmargs += ['-XX:+CompileTheWorld', '-Xbootclasspath/p:' + cp] else: if jvmciMode == 'jit': vmargs += ['-XX:+BootstrapJVMCI'] vmargs += ['-G:CompileTheWorldClasspath=' + cp, 'com.oracle.graal.hotspot.CompileTheWorld'] else: if isJVMCIEnabled(vm): if vm == 'jvmci': vmargs += ['-XX:+BootstrapJVMCI'] vmargs += ['-G:CompileTheWorldClasspath=' + cp, '-XX:-UseJVMCIClassLoader', 'com.oracle.graal.hotspot.CompileTheWorld'] else: vmargs += ['-XX:+CompileTheWorld', '-Xbootclasspath/p:' + cp] run_vm(vmargs + _noneAsEmptyList(extraVMarguments))
def ctw(args, extraVMarguments=None): """run CompileTheWorld""" defaultCtwopts = "-Inline" parser = ArgumentParser(prog="mx ctw") parser.add_argument( "--ctwopts", action="store", help='space separated JVMCI options used for CTW compilations (default: --ctwopts="' + defaultCtwopts + '")', default=defaultCtwopts, metavar="<options>", ) parser.add_argument( "--cp", "--jar", action="store", help="jar or class path denoting classes to compile", metavar="<path>" ) args, vmargs = parser.parse_known_args(args) if args.ctwopts: # Replace spaces with '#' since -G: options cannot contain spaces vmargs.append("-G:CompileTheWorldConfig=" + re.sub(r"\s+", "#", args.ctwopts)) if args.cp: cp = os.path.abspath(args.cp) else: if JVMCI_VERSION < 9: cp = join(get_jvmci_jdk().home, "jre", "lib", "rt.jar") else: cp = ( join(get_jvmci_jdk().home, "modules", "java.base") + os.pathsep + join(get_jvmci_jdk().home, "lib", "modules", "bootmodules.jimage") ) vmargs.append("-G:CompileTheWorldExcludeMethodFilter=sun.awt.X11.*.*") # suppress menubar and dock when running on Mac; exclude x11 classes as they may cause vm crashes (on Solaris) vmargs = ["-Djava.awt.headless=true"] + vmargs vm = get_vm() if JVMCI_VERSION >= 9: jvmciMode = _jvmci_get_vm().jvmciMode if jvmciMode == "disabled": vmargs += ["-XX:+CompileTheWorld", "-Xbootclasspath/p:" + cp] else: if jvmciMode == "jit": vmargs += ["-XX:+BootstrapJVMCI"] vmargs += ["-G:CompileTheWorldClasspath=" + cp, "com.oracle.graal.hotspot.CompileTheWorld"] else: if isJVMCIEnabled(vm): if vm == "jvmci": vmargs += ["-XX:+BootstrapJVMCI"] vmargs += [ "-G:CompileTheWorldClasspath=" + cp, "-XX:-UseJVMCIClassLoader", "com.oracle.graal.hotspot.CompileTheWorld", ] else: vmargs += ["-XX:+CompileTheWorld", "-Xbootclasspath/p:" + cp] run_vm(vmargs + _noneAsEmptyList(extraVMarguments))