Skip to content

Commit

Permalink
Merge branch 'master' into ds/GR-15320.
Browse files Browse the repository at this point in the history
  • Loading branch information
dougxc committed May 16, 2019
2 parents b087bcb + eba76a4 commit 9ecefba
Show file tree
Hide file tree
Showing 1,089 changed files with 34,564 additions and 12,381 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -50,3 +50,4 @@ test-output/
workingsets.xml
bench-results.json
jmh_result.json
/vm/src/installer/dist/
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@ jdk:

env:
global:
- JVMCI_VERSION="jvmci-0.59"
- JDK8_UPDATE_VERSION="202"
- JVMCI_VERSION="jvmci-20-b01"
- JDK8_UPDATE_VERSION="212"

matrix:
include:
Expand Down
2 changes: 2 additions & 0 deletions ci.hocon
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ include "ci_includes/publish-javadoc.hocon"

# ------------------- VM ----------------------
include "vm/ci_common/common.hocon"
include "vm/ci_common/common-bench.hocon"
include "vm/ci_includes/vm.hocon"
include "vm/ci_includes/vm-native.hocon"
include "vm/ci_includes/vm-bench.hocon"
include "vm/ci_includes/vm-bench-sulong.hocon"
2 changes: 1 addition & 1 deletion ci_includes/publish-javadoc.hocon
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Publish Javadoc of graal components post-merge

builds += [
${linux-amd64} ${labsjdk8} {
${linux-amd64} ${oraclejdk8} {
timelimit : "30:00",
run : [
[cd, "./sdk"],
Expand Down
18 changes: 9 additions & 9 deletions common.hocon
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# overlay version
overlay = 92cc4cf61ccb3ffc91bea53450b8a73222107f8e
overlay = 222db15cfd9f6bec9148f197d4c86cf8a13c9289

# oraclejdk* are released OracleJDK binaries
# labsjdk* are JDKs based on OracleJDK binaries
# oraclejdk* are JDKs based on OracleJDK binaries
# openjdk8 JDKs on Linux are built by Oracle Labs
# openjdk8 JDKs on macOS are based on AdoptOpenJDK binaries
jdks: {
labsjdk8: {name : labsjdk, version : "8u202-jvmci-0.59", platformspecific: true}
openjdk8: {name : openjdk, version : "8u202-jvmci-0.59", platformspecific: true}
labsjdk8Debug: {name : labsjdk, version : "8u202-jvmci-0.59-fastdebug", platformspecific: true}
oraclejdk11: {name : oraclejdk, version : "11+28", platformspecific: true}
openjdk11: {name : openjdk, version : "11+28", platformspecific: true}
oraclejdk8: {name : oraclejdk, version : "8u212-jvmci-20-b01", platformspecific: true}
openjdk8: {name : openjdk, version : "8u212-jvmci-20-b01", platformspecific: true}
oraclejdk8Debug: {name : oraclejdk, version : "8u212-jvmci-20-b01-fastdebug", platformspecific: true}
oraclejdk11: {name : oraclejdk, version : "11.0.3+12", platformspecific: true}
openjdk11: {name : openjdk, version : "11.0.3+12", platformspecific: true}
}

# This must always point to HEAD in the master branch but can be used to point
Expand All @@ -27,8 +27,8 @@ download-hsdis : {
]
}

labsjdk8 : { downloads : { JAVA_HOME : ${jdks.labsjdk8}, EXTRA_JAVA_HOMES : { pathlist :[ ${jdks.oraclejdk11} ]} }}
labsjdk8Debug : { downloads : { JAVA_HOME : ${jdks.labsjdk8Debug}, EXTRA_JAVA_HOMES : { pathlist :[ ${jdks.oraclejdk11} ]} }}
oraclejdk8 : { downloads : { JAVA_HOME : ${jdks.oraclejdk8}, EXTRA_JAVA_HOMES : { pathlist :[ ${jdks.oraclejdk11} ]} }}
oraclejdk8Debug : { downloads : { JAVA_HOME : ${jdks.oraclejdk8Debug}, EXTRA_JAVA_HOMES : { pathlist :[ ${jdks.oraclejdk11} ]} }}

openjdk8 : { downloads : { JAVA_HOME : ${jdks.openjdk8} }}

Expand Down
15 changes: 8 additions & 7 deletions compiler/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,17 @@ export PATH=$PWD/mx:$PATH

The compiler depends on a JDK that supports a compatible version of JVMCI ([JVM Compiler Interface](https://bugs.openjdk.java.net/browse/JDK-8062493)).
There is a JVMCI [port](https://github.com/graalvm/graal-jvmci-8) for JDK 8 and the required JVMCI version is built into the JDK as of JDK 11.
You need either a JVMCI-enabled JDK 8 (download from [OTN](http://www.oracle.com/technetwork/oracle-labs/program-languages/downloads/index.html) or [build](#building-jvmci-jdk8) yourself)
or JDK 11.
A JVMCI-enabled JDK 8 can be downloaded from [OTN](https://www.oracle.com/technetwork/graalvm/downloads/index.html)
or [GitHub](https://github.com/graalvm/openjdk8-jvmci-builder/releases)
or you can [build](#building-jvmci-jdk8) it yourself.

Most compiler sources are compliant with Java 8. Some sources use API specific to JDK 8 or only introduced in JDK 9.
These sources are in [versioned projects](https://github.com/graalvm/mx#versioning-sources-for-different-jdk-releases).
If you don't have a JDK that satisfies the requirement of a versioned project, the project is ignored by mx.

If you want to develop on a single JDK version, you only need to define `JAVA_HOME`. For example:
```
export JAVA_HOME=/usr/lib/jvm/openjdk1.8.0_202-jvmci-0.59
export JAVA_HOME=/usr/lib/jvm/oraclejdk1.8.0_212-jvmci-20-b01
```
or:
```
Expand All @@ -44,12 +45,12 @@ If you want to ensure your changes will pass both JDK 8 and JDK 11 gates, you ca
For example, to develop for JDK 8 while ensuring `mx build` still works with the JDK 11 specific sources:

```
export JAVA_HOME=/usr/lib/jvm/openjdk1.8.0_202-jvmci-0.59
export JAVA_HOME=/usr/lib/jvm/oraclejdk1.8.0_212-jvmci-20-b01
export EXTRA_JAVA_HOMES=/usr/lib/jvm/jdk-11
```
And on macOS:
```
export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk1.8.0_202-jvmci-0.59/Contents/Home
export JAVA_HOME=/Library/Java/JavaVirtualMachines/oraclejdk1.8.0_212-jvmci-20-b01/Contents/Home
export EXTRA_JAVA_HOMES=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
```
If you omit `EXTRA_JAVA_HOMES` in the above examples, versioned projects depending on the specified JDK(s) will be ignored.
Expand Down Expand Up @@ -90,7 +91,7 @@ This will generate Eclipse, IntelliJ, and NetBeans project configurations.
Further information on how to import these project configurations into individual IDEs can be found on the [IDEs](docs/IDEs.md) page.

The [Ideal Graph Visualizer](https://www.graalvm.org/docs/reference-manual/tools/#ideal-graph-visualizer)(IGV) is very useful in terms of visualizing the compiler's intermediate representation (IR).
IGV is distributed as part of [GraalVM EE](https://www.oracle.com/technetwork/oracle-labs/program-languages/downloads/index.html).
IGV is available on [OTN](https://www.oracle.com/technetwork/graalvm/downloads/index.html).
You can get a quick insight into this tool by running the commands below.
The first command launches the tool and the second runs one of the unit tests included in the code base with extra options to dump the compiler IR for all methods compiled.
You should wait for the GUI to appear before running the second command.
Expand Down Expand Up @@ -177,7 +178,7 @@ mx --java-home /path/to/jdk8 unittest
export JAVA_HOME=$(mx --java-home /path/to/jdk8 jdkhome)
```
You need to use the same JDK the [OTN](http://www.oracle.com/technetwork/oracle-labs/program-languages/downloads/index.html) downloads are based on as the argument to `--java-home` in the above commands.
You need to use the same JDK the [OTN](https://www.oracle.com/technetwork/graalvm/downloads/index.html) downloads are based on as the argument to `--java-home` in the above commands.
The build step above should work on all [supported JDK 8 build platforms](https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms).
It should also work on other platforms (such as Oracle Linux, CentOS and Fedora as described [here](http://mail.openjdk.java.net/pipermail/graal-dev/2015-December/004050.html)).
If you run into build problems, send a message to http://mail.openjdk.java.net/mailman/listinfo/graal-dev.
Expand Down
6 changes: 3 additions & 3 deletions compiler/ci_common/bench-hwloc.hocon
Original file line number Diff line number Diff line change
Expand Up @@ -129,13 +129,13 @@ bench-scala-dacapo-move-profiling-hwloc: ${bench-scala-dacapo-move-profiling} ${

# Renaissance-related targets

bench-renaissance-hwloc: ${bench-renaissance} ${hwloc.bench-common} {
bench-renaissance-legacy-hwloc: ${bench-renaissance-legacy} ${hwloc.bench-common} {
run: [
[export, "LOGDIR=${PWD}"]
${export.node0}
${hwloc.node} ${bench-jvmci.mx-renaissance} ${bench-arguments} ${hwloc.cmd.suffix}
${hwloc.node} ${bench-jvmci.mx-renaissance-legacy} ${bench-arguments} ${hwloc.cmd.suffix}
${export.node1}
${hwloc.node} ${bench-jvmci.mx-renaissance} ${bench-arguments} ${hwloc.cmd.suffix}
${hwloc.node} ${bench-jvmci.mx-renaissance-legacy} ${bench-arguments} ${hwloc.cmd.suffix}
[wait]
]
}
84 changes: 42 additions & 42 deletions compiler/ci_common/bench-weekly.hocon
Original file line number Diff line number Diff line change
Expand Up @@ -67,36 +67,36 @@ bench-specjvm2008-Single-forks-batch4 : ${bench-specjvm2008-Single} ${weeklys-be
}
}

bench-renaissance-hwloc-forks-batch0 : ${bench-renaissance-hwloc} ${weeklys-bench-notifications} {
bench-renaissance-legacy-hwloc-forks-batch0 : ${bench-renaissance-legacy-hwloc} ${weeklys-bench-notifications} {
targets: [bench, weekly],
setup: ${fork-counts.setup} ${bench-renaissance-hwloc.setup}
setup: ${fork-counts.setup} ${bench-renaissance-legacy-hwloc.setup}
timelimit: "06:30:00"
environment : ${bench-renaissance-hwloc.environment} ${fork-counts.environment} ${bench-perftag.environment} {
FORK_COUNT_FILE: "${FORK_COUNTS_DIRECTORY}/renaissance_forks_batch0.json"
environment : ${bench-renaissance-legacy-hwloc.environment} ${fork-counts.environment} ${bench-perftag.environment} {
FORK_COUNT_FILE: "${FORK_COUNTS_DIRECTORY}/renaissance_legacy_forks_batch0.json"
}
}
bench-renaissance-hwloc-forks-batch1 : ${bench-renaissance-hwloc} ${weeklys-bench-notifications} {
bench-renaissance-legacy-hwloc-forks-batch1 : ${bench-renaissance-legacy-hwloc} ${weeklys-bench-notifications} {
targets: [bench, weekly],
setup: ${fork-counts.setup} ${bench-renaissance-hwloc.setup}
setup: ${fork-counts.setup} ${bench-renaissance-legacy-hwloc.setup}
timelimit: "06:30:00"
environment : ${bench-renaissance-hwloc.environment} ${fork-counts.environment} ${bench-perftag.environment} {
FORK_COUNT_FILE: "${FORK_COUNTS_DIRECTORY}/renaissance_forks_batch1.json"
environment : ${bench-renaissance-legacy-hwloc.environment} ${fork-counts.environment} ${bench-perftag.environment} {
FORK_COUNT_FILE: "${FORK_COUNTS_DIRECTORY}/renaissance_legacy_forks_batch1.json"
}
}
bench-renaissance-hwloc-forks-batch2 : ${bench-renaissance-hwloc} ${weeklys-bench-notifications} {
bench-renaissance-legacy-hwloc-forks-batch2 : ${bench-renaissance-legacy-hwloc} ${weeklys-bench-notifications} {
targets: [bench, weekly],
setup: ${fork-counts.setup} ${bench-renaissance-hwloc.setup}
setup: ${fork-counts.setup} ${bench-renaissance-legacy-hwloc.setup}
timelimit: "06:30:00"
environment : ${bench-renaissance-hwloc.environment} ${fork-counts.environment} ${bench-perftag.environment} {
FORK_COUNT_FILE: "${FORK_COUNTS_DIRECTORY}/renaissance_forks_batch2.json"
environment : ${bench-renaissance-legacy-hwloc.environment} ${fork-counts.environment} ${bench-perftag.environment} {
FORK_COUNT_FILE: "${FORK_COUNTS_DIRECTORY}/renaissance_legacy_forks_batch2.json"
}
}
bench-renaissance-hwloc-forks-batch3 : ${bench-renaissance-hwloc} ${weeklys-bench-notifications} {
bench-renaissance-legacy-hwloc-forks-batch3 : ${bench-renaissance-legacy-hwloc} ${weeklys-bench-notifications} {
targets: [bench, weekly],
setup: ${fork-counts.setup} ${bench-renaissance-hwloc.setup}
setup: ${fork-counts.setup} ${bench-renaissance-legacy-hwloc.setup}
timelimit: "06:30:00"
environment : ${bench-renaissance-hwloc.environment} ${fork-counts.environment} ${bench-perftag.environment} {
FORK_COUNT_FILE: "${FORK_COUNTS_DIRECTORY}/renaissance_forks_batch3.json"
environment : ${bench-renaissance-legacy-hwloc.environment} ${fork-counts.environment} ${bench-perftag.environment} {
FORK_COUNT_FILE: "${FORK_COUNTS_DIRECTORY}/renaissance_legacy_forks_batch3.json"
}
}

Expand All @@ -119,32 +119,32 @@ bench-specjbb2015-forks : ${bench-specjbb2015} ${weeklys-bench-notifications} {
}

builds += [
${x52.tmpfs10g} ${bench-dacapo-hwloc-forks} ${labsjdk8} { name: "bench-forks-compiler-dacapo-linux-x52" }
${x52.tmpfs10g} ${bench-scala-dacapo-hwloc-forks} ${labsjdk8} { name: "bench-forks-compiler-scala-dacapo-linux-x52" }
${x52.default} ${bench-specjvm2008-Single-forks-batch0} ${labsjdk8} { name: "bench-forks-compiler-specjvm2008-Single-linux-x52-batch0" }
${x52.default} ${bench-specjvm2008-Single-forks-batch1} ${labsjdk8} { name: "bench-forks-compiler-specjvm2008-Single-linux-x52-batch1" }
${x52.default} ${bench-specjvm2008-Single-forks-batch2} ${labsjdk8} { name: "bench-forks-compiler-specjvm2008-Single-linux-x52-batch2" }
${x52.default} ${bench-specjvm2008-Single-forks-batch3} ${labsjdk8} { name: "bench-forks-compiler-specjvm2008-Single-linux-x52-batch3" }
${x52.default} ${bench-specjvm2008-Single-forks-batch4} ${labsjdk8} { name: "bench-forks-compiler-specjvm2008-Single-linux-x52-batch4" }
${x52.tmpfs10g} ${bench-renaissance-hwloc-forks-batch0} ${labsjdk8} { name: "bench-forks-compiler-renaissance-linux-x52-batch0" }
${x52.tmpfs10g} ${bench-renaissance-hwloc-forks-batch1} ${labsjdk8} { name: "bench-forks-compiler-renaissance-linux-x52-batch1" }
${x52.tmpfs10g} ${bench-renaissance-hwloc-forks-batch2} ${labsjdk8} { name: "bench-forks-compiler-renaissance-linux-x52-batch2" }
${x52.tmpfs10g} ${bench-renaissance-hwloc-forks-batch3} ${labsjdk8} { name: "bench-forks-compiler-renaissance-linux-x52-batch3" }
${x52.default} ${bench-specjbb2005-forks} ${labsjdk8} { name: "bench-forks-compiler-specjbb2005-linux-x52" }
${x52.default} ${bench-specjbb2015-forks} ${labsjdk8} { name: "bench-forks-compiler-specjbb2015-linux-x52" }
${x52.tmpfs10g} ${bench-dacapo-hwloc-forks} ${oraclejdk8} { name: "bench-forks-compiler-dacapo-linux-x52" }
${x52.tmpfs10g} ${bench-scala-dacapo-hwloc-forks} ${oraclejdk8} { name: "bench-forks-compiler-scala-dacapo-linux-x52" }
${x52.default} ${bench-specjvm2008-Single-forks-batch0} ${oraclejdk8} { name: "bench-forks-compiler-specjvm2008-Single-linux-x52-batch0" }
${x52.default} ${bench-specjvm2008-Single-forks-batch1} ${oraclejdk8} { name: "bench-forks-compiler-specjvm2008-Single-linux-x52-batch1" }
${x52.default} ${bench-specjvm2008-Single-forks-batch2} ${oraclejdk8} { name: "bench-forks-compiler-specjvm2008-Single-linux-x52-batch2" }
${x52.default} ${bench-specjvm2008-Single-forks-batch3} ${oraclejdk8} { name: "bench-forks-compiler-specjvm2008-Single-linux-x52-batch3" }
${x52.default} ${bench-specjvm2008-Single-forks-batch4} ${oraclejdk8} { name: "bench-forks-compiler-specjvm2008-Single-linux-x52-batch4" }
${x52.tmpfs10g} ${bench-renaissance-legacy-hwloc-forks-batch0} ${oraclejdk8} { name: "bench-forks-compiler-renaissance-legacy-linux-x52-batch0" }
${x52.tmpfs10g} ${bench-renaissance-legacy-hwloc-forks-batch1} ${oraclejdk8} { name: "bench-forks-compiler-renaissance-legacy-linux-x52-batch1" }
${x52.tmpfs10g} ${bench-renaissance-legacy-hwloc-forks-batch2} ${oraclejdk8} { name: "bench-forks-compiler-renaissance-legacy-linux-x52-batch2" }
${x52.tmpfs10g} ${bench-renaissance-legacy-hwloc-forks-batch3} ${oraclejdk8} { name: "bench-forks-compiler-renaissance-legacy-linux-x52-batch3" }
${x52.default} ${bench-specjbb2005-forks} ${oraclejdk8} { name: "bench-forks-compiler-specjbb2005-linux-x52" }
${x52.default} ${bench-specjbb2015-forks} ${oraclejdk8} { name: "bench-forks-compiler-specjbb2015-linux-x52" }

# libgraal
${x52.tmpfs10g-libgraal} ${bench-dacapo-hwloc-forks} ${labsjdk8} { name: "bench-forks-compiler-dacapo-libgraal-linux-x52" }
${x52.tmpfs10g-libgraal} ${bench-scala-dacapo-hwloc-forks} ${labsjdk8} { name: "bench-forks-compiler-scala-dacapo-libgraal-linux-x52" }
${x52.default-libgraal} ${bench-specjvm2008-Single-forks-batch0} ${labsjdk8} { name: "bench-forks-compiler-specjvm2008-Single-libgraal-linux-x52-batch0" }
${x52.default-libgraal} ${bench-specjvm2008-Single-forks-batch1} ${labsjdk8} { name: "bench-forks-compiler-specjvm2008-Single-libgraal-linux-x52-batch1" }
${x52.default-libgraal} ${bench-specjvm2008-Single-forks-batch2} ${labsjdk8} { name: "bench-forks-compiler-specjvm2008-Single-libgraal-linux-x52-batch2" }
${x52.default-libgraal} ${bench-specjvm2008-Single-forks-batch3} ${labsjdk8} { name: "bench-forks-compiler-specjvm2008-Single-libgraal-linux-x52-batch3" }
${x52.default-libgraal} ${bench-specjvm2008-Single-forks-batch4} ${labsjdk8} { name: "bench-forks-compiler-specjvm2008-Single-libgraal-linux-x52-batch4" }
${x52.tmpfs10g-libgraal} ${bench-renaissance-hwloc-forks-batch0} ${labsjdk8} { name: "bench-forks-compiler-renaissance-libgraal-linux-x52-batch0" }
${x52.tmpfs10g-libgraal} ${bench-renaissance-hwloc-forks-batch1} ${labsjdk8} { name: "bench-forks-compiler-renaissance-libgraal-linux-x52-batch1" }
${x52.tmpfs10g-libgraal} ${bench-renaissance-hwloc-forks-batch2} ${labsjdk8} { name: "bench-forks-compiler-renaissance-libgraal-linux-x52-batch2" }
${x52.tmpfs10g-libgraal} ${bench-renaissance-hwloc-forks-batch3} ${labsjdk8} { name: "bench-forks-compiler-renaissance-libgraal-linux-x52-batch3" }
${x52.default-libgraal} ${bench-specjbb2005-forks} ${labsjdk8} { name: "bench-forks-compiler-specjbb2005-libgraal-linux-x52" }
${x52.default-libgraal} ${bench-specjbb2015-forks} ${labsjdk8} { name: "bench-forks-compiler-specjbb2015-libgraal-linux-x52" }
${x52.tmpfs10g-libgraal} ${bench-dacapo-hwloc-forks} ${oraclejdk8} { name: "bench-forks-compiler-dacapo-libgraal-linux-x52" }
${x52.tmpfs10g-libgraal} ${bench-scala-dacapo-hwloc-forks} ${oraclejdk8} { name: "bench-forks-compiler-scala-dacapo-libgraal-linux-x52" }
${x52.default-libgraal} ${bench-specjvm2008-Single-forks-batch0} ${oraclejdk8} { name: "bench-forks-compiler-specjvm2008-Single-libgraal-linux-x52-batch0" }
${x52.default-libgraal} ${bench-specjvm2008-Single-forks-batch1} ${oraclejdk8} { name: "bench-forks-compiler-specjvm2008-Single-libgraal-linux-x52-batch1" }
${x52.default-libgraal} ${bench-specjvm2008-Single-forks-batch2} ${oraclejdk8} { name: "bench-forks-compiler-specjvm2008-Single-libgraal-linux-x52-batch2" }
${x52.default-libgraal} ${bench-specjvm2008-Single-forks-batch3} ${oraclejdk8} { name: "bench-forks-compiler-specjvm2008-Single-libgraal-linux-x52-batch3" }
${x52.default-libgraal} ${bench-specjvm2008-Single-forks-batch4} ${oraclejdk8} { name: "bench-forks-compiler-specjvm2008-Single-libgraal-linux-x52-batch4" }
${x52.tmpfs10g-libgraal} ${bench-renaissance-legacy-hwloc-forks-batch0} ${oraclejdk8} { name: "bench-forks-compiler-renaissance-legacy-libgraal-linux-x52-batch0" }
${x52.tmpfs10g-libgraal} ${bench-renaissance-legacy-hwloc-forks-batch1} ${oraclejdk8} { name: "bench-forks-compiler-renaissance-legacy-libgraal-linux-x52-batch1" }
${x52.tmpfs10g-libgraal} ${bench-renaissance-legacy-hwloc-forks-batch2} ${oraclejdk8} { name: "bench-forks-compiler-renaissance-legacy-libgraal-linux-x52-batch2" }
${x52.tmpfs10g-libgraal} ${bench-renaissance-legacy-hwloc-forks-batch3} ${oraclejdk8} { name: "bench-forks-compiler-renaissance-legacy-libgraal-linux-x52-batch3" }
${x52.default-libgraal} ${bench-specjbb2005-forks} ${oraclejdk8} { name: "bench-forks-compiler-specjbb2005-libgraal-linux-x52" }
${x52.default-libgraal} ${bench-specjbb2015-forks} ${oraclejdk8} { name: "bench-forks-compiler-specjbb2015-libgraal-linux-x52" }
]
Loading

0 comments on commit 9ecefba

Please sign in to comment.