Skip to content

Commit 25ae2cd

Browse files
Merge with master.
2 parents bfcae90 + 8dc6edf commit 25ae2cd

File tree

753 files changed

+18799
-11638
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

753 files changed

+18799
-11638
lines changed

.github/workflows/ni-layers.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ jobs:
9393
runs-on: ubuntu-latest
9494
env:
9595
GRAALVM_HOME: ${{ github.workspace }}/graalvm
96-
timeout-minutes: 20
96+
timeout-minutes: 30
9797
needs: build-graalvm-and-populate-matrix
9898
strategy:
9999
fail-fast: false
@@ -120,4 +120,4 @@ jobs:
120120
python-version: '${{ env.PYTHON_VERSION }}'
121121
- name: Build layer
122122
run: |
123-
python3 ${{ env.LIBRARY_METADATA_PATH }}/build_native_image_layer.py ${{ env.GRAALVM_HOME }}/bin/native-image "${{ matrix.coordinates }}"
123+
python3 ${{ env.LIBRARY_METADATA_PATH }}/build_native_image_layer.py ${{ env.GRAALVM_HOME }}/bin/native-image "${{ matrix.coordinates }}"

.github/workflows/quarkus.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ env:
5656
DB_NAME: hibernate_orm_test
5757
DB_PASSWORD: hibernate_orm_test
5858
DB_USER: hibernate_orm_test
59-
NATIVE_TEST_MAVEN_ARGS: "-Dtest-containers -Dstart-containers -Dquarkus.native.native-image-xmx=5g -Dnative -Dnative.surefire.skip -Dformat.skip -Dno-descriptor-tests install -DskipDocs -Dquarkus.native.container-build=false"
59+
NATIVE_TEST_MAVEN_ARGS: "-Dtest-containers -Dstart-containers -Dquarkus.native.native-image-xmx=6g -Dnative -Dnative.surefire.skip -Dformat.skip -Dno-descriptor-tests install -DskipDocs -Dquarkus.native.container-build=false"
6060
QUARKUS_JAVA_VERSION: 17 # Use Java 17 to build Quarkus as that's the lowest supported JDK version currently
6161
QUARKUS_PATH: ${{ github.workspace }}/quarkus
6262

common.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
"COMMENT.jdks": "When adding or removing JDKs keep in sync with JDKs in ci/common.jsonnet",
1010
"jdks": {
11-
"galahad-jdk": {"name": "jpg-jdk", "version": "24", "build_id": "jdk-24+19-2105", "platformspecific": true, "extrabundles": ["static-libs"]},
11+
"galahad-jdk": {"name": "jpg-jdk", "version": "24", "build_id": "jdk-24+21-2436", "platformspecific": true, "extrabundles": ["static-libs"]},
1212

1313
"oraclejdk17": {"name": "jpg-jdk", "version": "17.0.7", "build_id": "jdk-17.0.7+8", "platformspecific": true, "extrabundles": ["static-libs"]},
1414
"labsjdk-ce-17": {"name": "labsjdk", "version": "ce-17.0.7+4-jvmci-23.1-b02", "platformspecific": true },
@@ -45,13 +45,13 @@
4545

4646
"oraclejdk23": {"name": "jpg-jdk", "version": "23", "build_id": "jdk-23+37", "platformspecific": true, "extrabundles": ["static-libs"]},
4747

48-
"oraclejdk-latest": {"name": "jpg-jdk", "version": "24", "build_id": "jdk-24+19", "platformspecific": true, "extrabundles": ["static-libs"]},
49-
"labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-24+19-jvmci-b01", "platformspecific": true },
50-
"labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-24+19-jvmci-b01-debug", "platformspecific": true },
51-
"labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-24+19-jvmci-b01-sulong", "platformspecific": true },
52-
"labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-24+19-jvmci-b01", "platformspecific": true },
53-
"labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-24+19-jvmci-b01-debug", "platformspecific": true },
54-
"labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-24+19-jvmci-b01-sulong", "platformspecific": true }
48+
"oraclejdk-latest": {"name": "jpg-jdk", "version": "24", "build_id": "jdk-24+21", "platformspecific": true, "extrabundles": ["static-libs"]},
49+
"labsjdk-ce-latest": {"name": "labsjdk", "version": "ce-24+21-jvmci-b01", "platformspecific": true },
50+
"labsjdk-ce-latestDebug": {"name": "labsjdk", "version": "ce-24+21-jvmci-b01-debug", "platformspecific": true },
51+
"labsjdk-ce-latest-llvm": {"name": "labsjdk", "version": "ce-24+21-jvmci-b01-sulong", "platformspecific": true },
52+
"labsjdk-ee-latest": {"name": "labsjdk", "version": "ee-24+21-jvmci-b01", "platformspecific": true },
53+
"labsjdk-ee-latestDebug": {"name": "labsjdk", "version": "ee-24+21-jvmci-b01-debug", "platformspecific": true },
54+
"labsjdk-ee-latest-llvm": {"name": "labsjdk", "version": "ee-24+21-jvmci-b01-sulong", "platformspecific": true }
5555
},
5656

5757
"eclipse": {

compiler/ci/ci_common/benchmark-builders.jsonnet

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
c.daily + c.opt_post_merge + hw.e3 + jdk + cc.libgraal + bench.dacapo + PR_bench_libgraal,
1515
c.daily + c.opt_post_merge + hw.e3 + jdk + cc.libgraal + bench.scala_dacapo + PR_bench_libgraal,
1616
c.daily + c.opt_post_merge + hw.e3 + jdk + cc.libgraal + bench.renaissance + PR_bench_libgraal,
17+
c.daily + c.opt_post_merge + hw.e3 + jdk + cc.libgraal + bench.barista,
1718
c.daily + c.opt_post_merge + hw.e3 + jdk + cc.libgraal + bench.specjvm2008 + PR_bench_libgraal,
1819
c.on_demand + hw.e3 + jdk + cc.libgraal + bench.dacapo_size_variants,
1920
c.on_demand + hw.e3 + jdk + cc.libgraal + bench.scala_dacapo_size_variants,

compiler/ci/ci_common/benchmark-suites.libsonnet

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
// convenient sets of benchmark suites for easy reuse
1010
groups:: {
11-
open_suites:: unique_suites([$.awfy, $.dacapo, $.scala_dacapo, $.renaissance]),
11+
open_suites:: unique_suites([$.awfy, $.dacapo, $.scala_dacapo, $.renaissance, $.barista]),
1212
spec_suites:: unique_suites([$.specjvm2008, $.specjbb2015]),
1313
jmh_micros_suites:: unique_suites([$.micros_graal_dist]),
1414
graal_internals_suites:: unique_suites([$.micros_graal_whitebox]),
@@ -115,6 +115,47 @@
115115

116116
renaissance: self.renaissance_template(),
117117

118+
barista_template(suite_version=null, suite_name="barista", max_jdk_version=null, cmd_app_prefix=["hwloc-bind --cpubind node:0.core:0-3.pu:0 --membind node:0"], non_prefix_barista_args=[]):: cc.compiler_benchmark + {
119+
suite:: suite_name,
120+
local barista_version = "v0.2.0",
121+
local suite_version_args = if suite_version != null then ["--bench-suite-version=" + suite_version] else [],
122+
local prefix_barista_arg = if std.length(cmd_app_prefix) > 0 then [std.format("--cmd-app-prefix=%s", std.join(" ", cmd_app_prefix))] else [],
123+
local all_barista_args = prefix_barista_arg + non_prefix_barista_args,
124+
local barista_args_with_separator = if std.length(all_barista_args) > 0 then ["--"] + all_barista_args else [],
125+
downloads+: {
126+
"WRK": { "name": "wrk", "version": "a211dd5", platformspecific: true},
127+
"WRK2": { "name": "wrk2", "version": "2.1", platformspecific: true},
128+
"BARISTA_BENCHMARKS": { "name": "barista", "version": "0.2.0"}
129+
},
130+
packages+: {
131+
maven: "==3.8.6",
132+
"pip:toml": "==0.10.2"
133+
},
134+
setup: [
135+
["set-export", "PATH", "$WRK:$PATH"],
136+
["set-export", "PATH", "$WRK2:$PATH"],
137+
["git", "clone", "--depth", "1", "--branch", barista_version, ["mx", "urlrewrite", "https://github.com/graalvm/barista-suite.git"], "$BARISTA_HOME"],
138+
["cp", "-r", "$BARISTA_BENCHMARKS/*", "$BARISTA_HOME"] // copy the prebuilt jar/nib files
139+
] + super.setup,
140+
run+: [
141+
self.benchmark_cmd + ["barista:*"] + suite_version_args + ["--"] + self.extra_vm_args + barista_args_with_separator
142+
],
143+
notify_emails+: ["[email protected]"],
144+
timelimit: "1:20:00",
145+
should_use_hwloc: false, // hwloc-bind is passed to barista with '--cmd-app-prefix'
146+
environment+: {
147+
BARISTA_HOME: "$BUILD_DIR/barista-suite",
148+
XMX: "500m"
149+
},
150+
min_jdk_version:: 8,
151+
max_jdk_version:: max_jdk_version,
152+
forks_batches:: 3,
153+
bench_forks_per_batch:: 4,
154+
forks_timelimit:: "3:30:00"
155+
},
156+
157+
barista: self.barista_template(),
158+
118159
specjbb2015: cc.compiler_benchmark + c.heap.large_with_large_young_gen + bc.bench_no_thread_cap + {
119160
suite:: "specjbb2015",
120161
downloads+: {

compiler/mx.compiler/suite.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@
164164
"dependencies" : [
165165
"sdk:WORD",
166166
"sdk:COLLECTIONS",
167+
"sdk:NATIVEIMAGE",
167168
"truffle:TRUFFLE_COMPILER",
168169
],
169170
"requires" : [
@@ -582,6 +583,7 @@
582583
"distDependencies" : [
583584
"sdk:COLLECTIONS",
584585
"sdk:WORD",
586+
"sdk:NATIVEIMAGE",
585587
"truffle:TRUFFLE_COMPILER",
586588
],
587589
"allowsJavadocWarnings": True,

compiler/src/jdk.graal.compiler.processor/src/jdk/graal/compiler/replacements/processor/GeneratedFoldPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ protected void createExecute(AbstractProcessor processor, PrintWriter out, Injec
176176
protected void createHelpers(AbstractProcessor processor, PrintWriter out, InjectedDependencies deps) {
177177
out.printf("\n");
178178
out.printf(" @Override\n");
179-
out.printf(" public boolean replace(GraphBuilderContext b, GeneratedPluginInjectionProvider injection, Stamp stamp, NodeInputList<ValueNode> args) {\n");
179+
out.printf(" public boolean replace(GraphBuilderContext b, Replacements injection, Stamp stamp, NodeInputList<ValueNode> args) {\n");
180180

181181
List<? extends VariableElement> params = intrinsicMethod.getParameters();
182182

compiler/src/jdk.graal.compiler.processor/src/jdk/graal/compiler/replacements/processor/GeneratedNodeIntrinsicPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ protected void createHelpers(AbstractProcessor processor, PrintWriter out, Injec
247247
}
248248
out.printf("\n");
249249
out.printf(" @Override\n");
250-
out.printf(" public boolean replace(GraphBuilderContext b, GeneratedPluginInjectionProvider injection, Stamp stamp, NodeInputList<ValueNode> args) {\n");
250+
out.printf(" public boolean replace(GraphBuilderContext b, Replacements injection, Stamp stamp, NodeInputList<ValueNode> args) {\n");
251251

252252
List<? extends VariableElement> params = getParameters();
253253

compiler/src/jdk.graal.compiler.processor/src/jdk/graal/compiler/replacements/processor/PluginGenerator.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ protected static void createImports(PrintWriter out, AbstractProcessor processor
177177
if (plugin.needsReplacement(processor)) {
178178
extra.add("jdk.graal.compiler.options.ExcludeFromJacocoGeneratedReport");
179179
extra.add("jdk.graal.compiler.graph.NodeInputList");
180+
extra.add("jdk.graal.compiler.nodes.spi.Replacements");
180181
if (plugin.isWithExceptionReplacement(processor)) {
181182
extra.add("jdk.graal.compiler.nodes.PluginReplacementWithExceptionNode");
182183
} else {
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
/*
2+
* Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
3+
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4+
*
5+
* This code is free software; you can redistribute it and/or modify it
6+
* under the terms of the GNU General Public License version 2 only, as
7+
* published by the Free Software Foundation. Oracle designates this
8+
* particular file as subject to the "Classpath" exception as provided
9+
* by Oracle in the LICENSE file that accompanied this code.
10+
*
11+
* This code is distributed in the hope that it will be useful, but WITHOUT
12+
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13+
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14+
* version 2 for more details (a copy is included in the LICENSE file that
15+
* accompanied this code).
16+
*
17+
* You should have received a copy of the GNU General Public License version
18+
* 2 along with this work; if not, write to the Free Software Foundation,
19+
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20+
*
21+
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22+
* or visit www.oracle.com if you need additional information or have any
23+
* questions.
24+
*/
25+
package jdk.graal.compiler.core.aarch64.test;
26+
27+
import jdk.graal.compiler.core.test.GraalCompilerTest;
28+
import org.junit.Test;
29+
30+
/**
31+
* Add/sub with an immediate MIN_VALUE may result in infinite recursion since MIN_VALUE < 0 and
32+
* -MIN_VALUE < 0.
33+
*/
34+
public class AddSubInfiniteRecursionTest extends GraalCompilerTest {
35+
public static int testAddIntMinValue(int arg) {
36+
return arg + Integer.MIN_VALUE;
37+
}
38+
39+
public static int testSubIntMinValue(int arg) {
40+
return arg - Integer.MIN_VALUE;
41+
}
42+
43+
@Test
44+
public void runIntMinValue() {
45+
test("testAddIntMinValue", 0);
46+
test("testSubIntMinValue", 0);
47+
}
48+
}

0 commit comments

Comments
 (0)