diff --git a/ci.hocon b/ci.hocon index e6b407317c9624e7d12100d12e6f5b4df3089845..85e43c748f42d467675ac88e07d42a6c325064ac 100644 --- a/ci.hocon +++ b/ci.hocon @@ -1,6 +1,6 @@ java7 : {name : oraclejdk, version : "7", platformspecific: true} #java8 : {name : oraclejdk, version : "8u66", platformspecific: true} -java8 : {name : labsjdk, version : "8u92-jvmci-0.11", platformspecific: true} +java8 : {name : labsjdk, version : "8u92-jvmci-0.14", platformspecific: true} common : { packages : { diff --git a/mx.fastr/mx_fastr.py b/mx.fastr/mx_fastr.py index 8680af8cf272bef761faaeab19ebf681a2d9c6b0..2a039579b48a0327905a3458a47a58936fa0d39a 100644 --- a/mx.fastr/mx_fastr.py +++ b/mx.fastr/mx_fastr.py @@ -94,10 +94,33 @@ def do_run_r(args, command, extraVmArgs=None, jdk=None, **kwargs): if extraVmArgs: vmArgs += extraVmArgs + vmArgs = _sanitize_vmArgs(jdk, vmArgs) if command: vmArgs.append(_command_class_dict[command.lower()]) return mx.run_java(vmArgs + args, jdk=jdk, **kwargs) +def _sanitize_vmArgs(jdk, vmArgs): + ''' + jdk dependent analysis of vmArgs to remove those that are not appropriate for the + chosen jdk. It is easier to allow clients to set anything they want and filter them + out here. + ''' + jvmci_jdk = jdk.tag == 'jvmci' + jvmci_disabled = '-XX:-EnableJVMCI' in vmArgs + + xargs = [] + i = 0 + while i < len(vmArgs): + vmArg = vmArgs[i] + if vmArg != '-XX:-EnableJVMCI': + if 'graal' in vmArg or 'JVMCI' in vmArg: + if not jvmci_jdk or jvmci_disabled: + i = i + 1 + continue + xargs.append(vmArg) + i = i + 1 + return xargs + def _graal_options(nocompile=False): if _mx_graal: result = ['-Dgraal.InliningDepthError=500', '-Dgraal.EscapeAnalysisIterations=3', '-XX:JVMCINMethodSizeLimit=1000000']