Beispiel #1
0
def register_graalvm_vms():
    default_host_vm_name = mx_sdk_vm_impl.graalvm_dist_name().lower().replace('_', '-')
    host_vm_names = ([default_host_vm_name.replace('-java8', '')] if '-java8' in default_host_vm_name else []) + [default_host_vm_name]
    for host_vm_name in host_vm_names:
        for config_name, java_args, launcher_args, priority in mx_sdk_vm.get_graalvm_hostvm_configs():
            mx_benchmark.java_vm_registry.add_vm(GraalVm(host_vm_name, config_name, java_args, launcher_args), _suite, priority)
        if mx_sdk_vm_impl.has_component('svm'):
            _native_image_vm_registry.add_vm(NativeImageBuildVm(host_vm_name, 'default', [], []), _suite, 10)
            _gu_vm_registry.add_vm(GuVm(host_vm_name, 'default', [], []), _suite, 10)

    # We support only EE and CE configuration for native-image benchmarks
    for short_name, config_suffix in [('niee', 'ee'), ('ni', 'ce')]:
        if any(component.short_name == short_name for component in mx_sdk_vm_impl.registered_graalvm_components(stage1=False)):
            mx_benchmark.add_java_vm(NativeImageVM('native-image', 'default-' + config_suffix, None, None, 0, False, False, False), _suite, 10)
            mx_benchmark.add_java_vm(NativeImageVM('native-image', 'llvm-' + config_suffix, None, None, 0, False, False, False, True), _suite, 10)
            break

    # Add VMs for libgraal
    if mx_sdk_vm_impl.has_component('LibGraal'):
        libgraal_location = mx_sdk_vm_impl.get_native_image_locations('LibGraal', 'jvmcicompiler')
        if libgraal_location is not None:
            import mx_graal_benchmark
            mx_graal_benchmark.build_jvmci_vm_variants('server', 'graal-core-libgraal',
                                                       ['-server', '-XX:+EnableJVMCI', '-Dgraal.CompilerConfiguration=community', '-Djvmci.Compiler=graal', '-XX:+UseJVMCINativeLibrary', '-XX:JVMCILibPath=' + dirname(libgraal_location)],
                                                       mx_graal_benchmark._graal_variants, suite=_suite, priority=15, hosted=False)
Beispiel #2
0
def graalvm_svm():
    """
    Gives access to image building withing the GraalVM release. Requires dynamic import of substratevm.
    """
    native_image_cmd = join(
        mx_sdk_vm_impl.graalvm_output(), 'bin',
        'native-image') + ('.cmd' if mx.get_os() == 'windows' else '')
    svm = mx.suite('substratevm')
    if not exists(native_image_cmd) or not svm:
        mx.abort(
            "Image building not accessible in GraalVM {}. Build GraalVM with native-image support"
            .format(mx_sdk_vm_impl.graalvm_dist_name()))
    # useful to speed up image creation during development
    hosted_assertions = mx.get_env("DISABLE_SVM_IMAGE_HOSTED_ASSERTIONS",
                                   "false") != "true"

    @contextmanager
    def native_image_context(common_args=None,
                             hosted_assertions=hosted_assertions):
        with svm.extensions.native_image_context(
                common_args, hosted_assertions,
                native_image_cmd=native_image_cmd) as native_image:
            yield native_image

    return native_image_context, svm.extensions
Beispiel #3
0
 def __init__(self, **kw_args):
     super(GraalVmSymlinks, self).__init__(
         _suite,
         'vm-symlinks',
         subDir=None,
         srcDirs=[],
         deps=['sdk:' + mx_sdk_vm_impl.graalvm_dist_name()],
         workingSets=None,
         d=_suite.dir,
         theLicense=None,
         testProject=False,
         **kw_args)
     self.links = []
     sdk_suite = mx.suite('sdk')
     for link_name in 'latest_graalvm', 'latest_graalvm_home':
         self.links += [(relpath(join(sdk_suite.dir, link_name),
                                 _suite.dir), join(_suite.dir, link_name))]
Beispiel #4
0
def graalvm_svm():
    """
    Gives access to image building withing the GraalVM release. Requires dynamic import of substratevm.
    """
    native_image_cmd = join(mx_sdk_vm_impl.graalvm_output(), 'bin',
                            'native-image')
    svm = mx.suite('substratevm')
    if not exists(native_image_cmd) or not svm:
        mx.abort(
            "Image building not accessible in GraalVM {}. Build GraalVM with native-image support"
            .format(mx_sdk_vm_impl.graalvm_dist_name()))

    @contextmanager
    def native_image_context(common_args=None, hosted_assertions=True):
        with svm.extensions.native_image_context(
                common_args, hosted_assertions,
                native_image_cmd=native_image_cmd) as native_image:
            yield native_image

    return native_image_context, svm.extensions