diff --git a/vm/mx.vm/mx_vm_benchmark.py b/vm/mx.vm/mx_vm_benchmark.py index e8f9badba82c..d1b1a820e016 100644 --- a/vm/mx.vm/mx_vm_benchmark.py +++ b/vm/mx.vm/mx_vm_benchmark.py @@ -227,6 +227,8 @@ def __init__(self, vm: NativeImageVM, bm_suite: BenchmarkSuite | NativeImageBenc base_image_build_args += ['-Ob'] if vm.use_string_inlining: base_image_build_args += ['-H:+UseStringInlining'] + if vm.use_open_type_world: + base_image_build_args += ['-H:-ClosedTypeWorld'] if vm.is_llvm: base_image_build_args += ['--features=org.graalvm.home.HomeFinderFeature'] + ['-H:CompilerBackend=llvm', '-H:DeadlockWatchdogInterval=0'] if vm.gc: @@ -527,6 +529,7 @@ def __init__(self, name, config_name, extra_java_args=None, extra_launcher_args= self.gc = None self.native_architecture = False self.use_upx = False + self.use_open_type_world = False self.graalvm_edition = None self.config: Optional[NativeImageBenchmarkConfig] = None self.stages_info: Optional[StagesInfo] = None @@ -558,7 +561,7 @@ def _configure_from_name(self, config_name): return # This defines the allowed config names for NativeImageVM. The ones registered will be available via --jvm-config - rule = r'^(?Pnative-architecture-)?(?Pstring-inlining-)?(?Pgate-)?(?Pupx-)?(?Pquickbuild-)?(?Pg1gc-)?(?Pllvm-)?(?Ppgo-|pgo-ctx-insens-|pgo-sampler-)?(?Pinline-)?' \ + rule = r'^(?Pnative-architecture-)?(?Pstring-inlining-)?(?Potw-)?(?Pgate-)?(?Pupx-)?(?Pquickbuild-)?(?Pg1gc-)?(?Pllvm-)?(?Ppgo-|pgo-ctx-insens-|pgo-sampler-)?(?Pinline-)?' \ r'(?Pinsens-|allocsens-|1obj-|2obj1h-|3obj2h-|4obj3h-)?(?Pno-inline-)?(?Pjdk-profiles-collect-|adopted-jdk-pgo-)?' \ r'(?Pprofile-inference-feature-extraction-|profile-inference-pgo-|profile-inference-debug-)?(?Psafepoint-sampler-|async-sampler-)?(?PO0-|O1-|O2-|O3-|Os-)?(?Pce-|ee-)?$' @@ -584,6 +587,10 @@ def _configure_from_name(self, config_name): mx.logv(f"'upx' is enabled for {config_name}") self.use_upx = True + if matching.group("otw") is not None: + mx.logv(f"'otw' is enabled for {config_name}") + self.use_open_type_world = True + if matching.group("quickbuild") is not None: mx.logv(f"'quickbuild' is enabled for {config_name}") self.is_quickbuild = True