Skip to content

Commit 8df6703

Browse files
committed
Merge remote-tracking branch 'upstream/master' into build-with-19-loom
2 parents b99bb0d + b2a17ab commit 8df6703

File tree

25 files changed

+157
-226
lines changed

25 files changed

+157
-226
lines changed

compiler/ci_common/benchmark-builders.jsonnet

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,8 @@
2727
c.weekly + hw.x52 + jdk + cc.jargraal + bench.specjbb2015,
2828
c.weekly + hw.x52 + jdk + cc.libgraal + bench.specjbb2015_full_machine,
2929
c.monthly + hw.x52 + jdk + cc.jargraal + bench.specjbb2015_full_machine,
30-
c.weekly + hw.x52 + jdk + cc.libgraal + bench.renaissance_0_10,
31-
c.monthly + hw.x52 + jdk + cc.jargraal + bench.renaissance_0_10,
32-
c.daily + hw.x52 + jdk + cc.libgraal + bench.renaissance_0_13,
33-
c.weekly + hw.x52 + jdk + cc.jargraal + bench.renaissance_0_13,
30+
c.weekly + hw.x52 + jdk + cc.libgraal + bench.renaissance_0_11,
31+
c.monthly + hw.x52 + jdk + cc.jargraal + bench.renaissance_0_11,
3432
c.daily + hw.x52 + jdk + cc.libgraal + bench.awfy,
3533
c.daily + hw.x52 + jdk + cc.jargraal + bench.awfy,
3634
c.daily + hw.x52 + jdk + cc.libgraal + bench.microservice_benchmarks,

compiler/ci_common/benchmark-suites.libsonnet

Lines changed: 25 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,25 @@
44
local bc = (import '../../bench-common.libsonnet'),
55
local cc = (import 'compiler-common.libsonnet'),
66

7-
local uniq_key(o) = o['suite'],
7+
local _suite_key(a) = a['suite'],
8+
local unique_suites(arr) = std.set(arr, keyF=_suite_key),
9+
810
// convenient sets of benchmark suites for easy reuse
911
groups:: {
10-
open_suites:: std.set([$.awfy, $.dacapo, $.scala_dacapo, $.renaissance, $.renaissance_0_13], keyF=uniq_key),
11-
spec_suites:: std.set([$.specjvm2008, $.specjbb2015], keyF=uniq_key),
12-
legacy_and_secondary_suites:: std.set([$.renaissance_legacy], keyF=uniq_key),
13-
jmh_micros_suites:: std.set([$.micros_graal_dist, $.micros_misc_graal_dist , $.micros_shootout_graal_dist], keyF=uniq_key),
14-
graal_internals_suites:: std.set([$.micros_graal_whitebox], keyF=uniq_key),
15-
special_suites:: std.set([$.renaissance_0_10, $.dacapo_size_variants, $.scala_dacapo_size_variants, $.specjbb2015_full_machine], keyF=uniq_key),
16-
microservice_suites:: std.set([$.microservice_benchmarks], keyF=uniq_key),
12+
open_suites:: unique_suites([$.awfy, $.dacapo, $.scala_dacapo, $.renaissance]),
13+
spec_suites:: unique_suites([$.specjvm2008, $.specjbb2015]),
14+
legacy_and_secondary_suites:: unique_suites([$.renaissance_0_11, $.renaissance_legacy]),
15+
jmh_micros_suites:: unique_suites([$.micros_graal_dist, $.micros_misc_graal_dist , $.micros_shootout_graal_dist]),
16+
graal_internals_suites:: unique_suites([$.micros_graal_whitebox]),
17+
special_suites:: unique_suites([$.renaissance, $.dacapo_size_variants, $.scala_dacapo_size_variants, $.specjbb2015_full_machine]),
18+
microservice_suites:: unique_suites([$.microservice_benchmarks]),
1719

18-
main_suites:: std.set([$.specjvm2008] + self.open_suites + self.legacy_and_secondary_suites, keyF=uniq_key),
19-
all_suites:: std.set(self.main_suites + self.spec_suites + self.jmh_micros_suites + self.special_suites + self.microservice_suites, keyF=uniq_key),
20+
main_suites:: unique_suites([$.specjvm2008] + self.open_suites + self.legacy_and_secondary_suites),
21+
all_suites:: unique_suites(self.main_suites + self.spec_suites + self.jmh_micros_suites + self.special_suites + self.microservice_suites),
2022

21-
weekly_forks_suites:: std.set([$.renaissance_0_13] + self.main_suites, keyF=uniq_key),
22-
profiled_suites:: std.setDiff(self.main_suites, [$.specjbb2015], keyF=uniq_key),
23-
all_but_main_suites:: std.setDiff(self.all_suites, self.main_suites, keyF=uniq_key),
23+
weekly_forks_suites:: self.main_suites,
24+
profiled_suites:: std.setDiff(self.main_suites, [$.specjbb2015], keyF=_suite_key),
25+
all_but_main_suites:: std.setDiff(self.all_suites, self.main_suites, keyF=_suite_key),
2426
},
2527

2628
// suite definitions
@@ -118,37 +120,25 @@
118120
max_jdk_version:: null
119121
},
120122

121-
renaissance: cc.compiler_benchmark + c.heap.default + {
122-
suite:: "renaissance",
123-
environment+: {
124-
"SPARK_LOCAL_IP": "127.0.0.1"
125-
},
123+
renaissance_template(suite_version=null, suite_name="renaissance", max_jdk_version=null):: cc.compiler_benchmark + c.heap.default + {
124+
suite:: suite_name,
125+
local suite_version_args = if suite_version != null then ["--bench-suite-version=" + suite_version] else [],
126126
run+: [
127-
self.benchmark_cmd + ["renaissance:*", "--bench-suite-version=$RENAISSANCE_VERSION", "--"] + self.extra_vm_args
127+
self.benchmark_cmd + ["renaissance:*"] + suite_version_args + ["--"] + self.extra_vm_args
128128
],
129-
timelimit: "3:00:00",
129+
timelimit: "4:00:00",
130130
forks_batches:: 4,
131131
forks_timelimit:: "06:30:00",
132132
min_jdk_version:: 8,
133-
max_jdk_version:: 11
133+
max_jdk_version:: max_jdk_version
134134
},
135135

136-
renaissance_0_10: self.renaissance + {
137-
suite:: "renaissance-0-10",
138-
environment+: {
139-
"RENAISSANCE_VERSION": "0.10.0"
140-
},
141-
min_jdk_version:: 8,
142-
max_jdk_version:: 11
143-
},
136+
renaissance: self.renaissance_template(),
144137

145-
renaissance_0_13: self.renaissance + {
146-
suite:: "renaissance-0-13",
138+
renaissance_0_11: self.renaissance_template(suite_version="0.11.0", suite_name="renaissance-0-11", max_jdk_version=11) + {
147139
environment+: {
148-
"RENAISSANCE_VERSION": "0.13.0"
149-
},
150-
min_jdk_version:: 8,
151-
max_jdk_version:: null
140+
"SPARK_LOCAL_IP": "127.0.0.1"
141+
}
152142
},
153143

154144
renaissance_legacy: cc.compiler_benchmark + c.heap.default + {

java-benchmarks/mx.java-benchmarks/mx_java_benchmarks.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1904,11 +1904,10 @@ def completeBenchmarkList(self, bmSuiteArgs):
19041904
return sorted(bench for bench in _renaissanceConfig)
19051905

19061906
def defaultSuiteVersion(self):
1907-
# return self.availableSuiteVersions()[-1]
1908-
return "0.11.0" # stick to 0.11.0 for both JIT and AOT until Native Image is compatible with 0.13.0 (GR-34147)
1907+
return self.availableSuiteVersions()[-1]
19091908

19101909
def availableSuiteVersions(self):
1911-
return ["0.9.0", "0.10.0", "0.11.0", "0.12.0", "0.13.0", "0.14.0"]
1910+
return ["0.9.0", "0.10.0", "0.11.0", "0.12.0", "0.13.0", "0.14.0", "0.14.1"]
19121911

19131912
def renaissancePath(self):
19141913
lib = mx.library(self.renaissanceLibraryName())

java-benchmarks/mx.java-benchmarks/suite.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,11 @@
9292
"sha1" : "d83a508c593a2389880936cbf9aa034bc86e7ef2",
9393
},
9494

95+
"RENAISSANCE_0.14.1" : {
96+
"urls" : ["https://lafo.ssw.uni-linz.ac.at/pub/graal-external-deps/renaissance/renaissance-gpl-0.14.1.jar"],
97+
"sha1" : "69cd6017692fc477bf5007d1d67d912961d52d37",
98+
},
99+
95100
"UBENCH_AGENT_DIST" : {
96101
"urls" : ["https://lafo.ssw.uni-linz.ac.at/pub/graal-external-deps/java-ubench-agent-2e5becaf97afcf64fd8aef3ac84fc05a3157bff5.zip"],
97102
"sha1" : "19087a34b80be8845e9a3e7f927ceb592de83762",

substratevm/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
This changelog summarizes major changes to GraalVM Native Image.
44

5+
## Version 22.3.0
6+
* (GR-35721) Remove old build output style and the `-H:±BuildOutputUseNewStyle` option.
7+
58
## Version 22.2.0
69
* (GR-20653) Re-enable the usage of all CPU features for JIT compilation on AMD64.
710
* (GR-38413) Add support for `-XX:+ExitOnOutOfMemoryError`.

substratevm/mx.substratevm/mx_substratevm_benchmark.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -269,9 +269,6 @@ def harness_path(self):
269269
return lib.get_path(True)
270270
return None
271271

272-
def availableSuiteVersions(self):
273-
return ["0.9.0", "0.10.0", "0.11.0", "0.12.0", "0.13.0", "0.14.0"]
274-
275272
def renaissance_unpacked(self):
276273
return extract_archive(self.renaissancePath(), 'renaissance.extracted')
277274

substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/AbstractAnalysisEngine.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public AbstractAnalysisEngine(OptionValues options, AnalysisUniverse universe, H
9898

9999
this.processFeaturesTimer = timerCollection.get(TimerCollection.Registry.FEATURES);
100100
this.verifyHeapTimer = timerCollection.get(TimerCollection.Registry.VERIFY_HEAP);
101-
this.reachabilityTimer = timerCollection.createTimer("(reachability)", false);
101+
this.reachabilityTimer = timerCollection.createTimer("(reachability)");
102102
this.analysisTimer = timerCollection.get(TimerCollection.Registry.ANALYSIS);
103103

104104
this.extendedAsserts = PointstoOptions.ExtendedAsserts.getValue(options);
@@ -182,13 +182,6 @@ public void cleanupAfterAnalysis() {
182182
universe.getHeapVerifier().cleanupAfterAnalysis();
183183
}
184184

185-
@Override
186-
public void printTimers() {
187-
reachabilityTimer.print();
188-
verifyHeapTimer.print();
189-
processFeaturesTimer.print();
190-
}
191-
192185
@Override
193186
public void printTimerStatistics(PrintWriter out) {
194187
// todo print reachability here

substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/BigBang.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
* Central static analysis interface that groups together the functionality of reachability analysis
5252
* and heap scanning and adds utility methods and lifecycle hooks that should be used to query and
5353
* change the state of the analysis.
54-
*
54+
*
5555
* In long term, all mutable accesses that change the state of the analysis should go through this
5656
* interface.
5757
*
@@ -73,11 +73,6 @@ public interface BigBang extends ReachabilityAnalysis, HeapScanning {
7373

7474
List<DebugHandlersFactory> getDebugHandlerFactories();
7575

76-
/**
77-
* Prints all analysis timers.
78-
*/
79-
void printTimers();
80-
8176
/**
8277
* Prints more detailed information about all analysis timers.
8378
*/

substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/PointsToAnalysis.java

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,7 @@ public PointsToAnalysis(OptionValues options, AnalysisUniverse universe, HostedP
142142
this.debugHandlerFactories = Collections.singletonList(new GraalDebugHandlersFactory(providers.getSnippetReflection()));
143143
this.debug = new Builder(options, debugHandlerFactories).build();
144144
this.hostVM = hostVM;
145-
String imageName = hostVM.getImageName();
146-
this.typeFlowTimer = timerCollection.createTimer(imageName, "(typeflow)", false);
145+
this.typeFlowTimer = timerCollection.createTimer("(typeflow)");
147146
this.verifyHeapTimer = timerCollection.get(TimerCollection.Registry.VERIFY_HEAP);
148147
this.processFeaturesTimer = timerCollection.get(TimerCollection.Registry.FEATURES);
149148
this.analysisTimer = timerCollection.get(TimerCollection.Registry.ANALYSIS);
@@ -184,13 +183,6 @@ public PointsToAnalysis(OptionValues options, AnalysisUniverse universe, HostedP
184183
: HeapScanningPolicy.skipTypes(skippedHeapTypes());
185184
}
186185

187-
@Override
188-
public void printTimers() {
189-
typeFlowTimer.print();
190-
verifyHeapTimer.print();
191-
processFeaturesTimer.print();
192-
}
193-
194186
@Override
195187
public void printTimerStatistics(PrintWriter out) {
196188
StatisticsPrinter.print(out, "typeflow_time_ms", typeFlowTimer.getTotalTime());
@@ -465,7 +457,7 @@ public AnalysisMethod addRootMethod(AnalysisMethod aMethod, boolean invokeSpecia
465457
* virtual invoke type flow. Since the virtual invoke observes the receiver flow
466458
* state it will get notified for any future reachable subtypes and will resolve the
467459
* method in each subtype.
468-
*
460+
*
469461
* In both cases the context-insensitive invoke parameters are initialized with the
470462
* corresponding declared type state. When a callee is resolved the method is parsed
471463
* and the actual parameter type state is propagated to the formal parameters. Then
@@ -483,7 +475,7 @@ public AnalysisMethod addRootMethod(AnalysisMethod aMethod, boolean invokeSpecia
483475
* Initialize the type flow of the invoke's actual parameters with the
484476
* corresponding parameter declared type. Thus, when the invoke links callees it
485477
* will propagate the parameter types too.
486-
*
478+
*
487479
* The parameter iteration skips the primitive parameters, as these are not
488480
* modeled. The type flow of the receiver is set to the receiver type already
489481
* when the invoke is created.

substratevm/src/com.oracle.graal.pointsto/src/com/oracle/graal/pointsto/util/Timer.java

Lines changed: 2 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,8 @@
2424
*/
2525
package com.oracle.graal.pointsto.util;
2626

27-
import org.graalvm.compiler.serviceprovider.GraalServices;
28-
2927
public class Timer {
30-
private static boolean disablePrinting = false;
31-
32-
private String prefix;
33-
3428
private final String name;
35-
private final boolean autoPrint;
3629
/** Timer start time in nanoseconds. */
3730
private long startTime;
3831
/** Timer total time in nanoseconds. */
@@ -42,25 +35,11 @@ public class Timer {
4235

4336
/**
4437
* Timers should only be instantiated via factory methods in TimerCollection.
45-
*
38+
*
4639
* @see TimerCollection
4740
*/
48-
Timer(String prefix, String name, boolean autoPrint) {
49-
this.prefix = prefix;
41+
Timer(String name) {
5042
this.name = name;
51-
this.autoPrint = autoPrint;
52-
}
53-
54-
public static void disablePrinting() {
55-
disablePrinting = true;
56-
}
57-
58-
/**
59-
* Registers the prefix to be used when {@linkplain Timer#print(long) printing} a timer. This
60-
* allows the output of interlaced native image executions to be disambiguated.
61-
*/
62-
public void setPrefix(String value) {
63-
this.prefix = value;
6443
}
6544

6645
public StopTimer start() {
@@ -72,30 +51,6 @@ public void stop() {
7251
long addTime = System.nanoTime() - startTime;
7352
totalTime += addTime;
7453
totalMemory = Runtime.getRuntime().totalMemory();
75-
if (autoPrint) {
76-
print(addTime);
77-
}
78-
}
79-
80-
private void print(long time) {
81-
// TODO GR-35721
82-
if (disablePrinting) {
83-
return;
84-
}
85-
final String concurrentPrefix;
86-
if (prefix != null) {
87-
// Add the PID to further disambiguate concurrent builds of images with the same name
88-
String pid = GraalServices.getExecutionID();
89-
concurrentPrefix = String.format("[%s:%s] ", prefix, pid);
90-
} else {
91-
concurrentPrefix = "";
92-
}
93-
double totalMemoryGB = totalMemory / 1024.0 / 1024.0 / 1024.0;
94-
System.out.format("%s%12s: %,10.2f ms, %,5.2f GB%n", concurrentPrefix, name, time / 1000000d, totalMemoryGB);
95-
}
96-
97-
public void print() {
98-
print(totalTime);
9954
}
10055

10156
/** Get timer total time in milliseconds. */

0 commit comments

Comments
 (0)