Skip to content

Commit

Permalink
Merge branch 'master' into resources
Browse files Browse the repository at this point in the history
  • Loading branch information
jovanstevanovic authored Apr 25, 2021
2 parents 35c4165 + bb6a384 commit 3e34247
Show file tree
Hide file tree
Showing 1,968 changed files with 36,013 additions and 17,914 deletions.
5 changes: 4 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,13 +99,16 @@ jobs:
run: |
mkdir jdk-dl
${MX_PATH}/mx fetch-jdk --java-distribution ${JDK} --to jdk-dl --alias ${JAVA_HOME}
- name: Update dependency cache
if: ${{ contains(matrix.env.GATE, 'debug') || contains(matrix.env.GATE, 'style') }}
run: sudo apt update
- name: Debug dependencies
if: ${{ contains(matrix.env.GATE, 'debug') }}
run: sudo apt install gdb
- name: Style dependencies
if: ${{ contains(matrix.env.GATE, 'style') }}
run: |
sudo apt install python-pip
sudo apt install python-pip python-setuptools
sudo pip install astroid==1.1.0
sudo pip install pylint==1.1.0
- name: Build GraalVM and run gate
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/quarkus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
path: ${{ env.MX_PATH }}
- name: Get latest quarkus release
run: |
export QUARKUS_VERSION=$(curl https://repo1.maven.org/maven2/io/quarkus/quarkus-bom/maven-metadata.xml | awk -F"[<>]" '/latest/ {print $3}')
export QUARKUS_VERSION=main #$(curl https://repo1.maven.org/maven2/io/quarkus/quarkus-bom/maven-metadata.xml | awk -F"[<>]" '/latest/ {print $3}')
echo Getting Quarkus $QUARKUS_VERSION
curl --output quarkus.tgz -sL https://api.github.com/repos/quarkusio/quarkus/tarball/$QUARKUS_VERSION
mkdir ${QUARKUS_PATH}
Expand Down Expand Up @@ -116,7 +116,7 @@ jobs:
run: tar -xzvf graalvm.tgz -C $(dirname ${GRAALVM_HOME})
- name: Get latest quarkus release
run: |
export QUARKUS_VERSION=$(curl https://repo1.maven.org/maven2/io/quarkus/quarkus-bom/maven-metadata.xml | awk -F"[<>]" '/latest/ {print $3}')
export QUARKUS_VERSION=main #$(curl https://repo1.maven.org/maven2/io/quarkus/quarkus-bom/maven-metadata.xml | awk -F"[<>]" '/latest/ {print $3}')
echo Getting Quarkus $QUARKUS_VERSION
curl --output quarkus.tgz -sL https://api.github.com/repos/quarkusio/quarkus/tarball/$QUARKUS_VERSION
mkdir ${QUARKUS_PATH}
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@ images or shared objects.
## Related Repositories

GraalVM allows running of following languages which are being developed and tested in related repositories with GraalVM core to run on top of it using Truffle and the GraalVM compiler. These are:
* [GraalJS](https://github.com/graalvm/graaljs) - JavaScript (ECMAScript 2020 compatible) and Node.js 12.18.0
* [FastR](https://github.com/oracle/fastr) - R Language 3.6.1
* [GraalPython](https://github.com/graalvm/graalpython) - Python 3.7
* [TruffleRuby](https://github.com/oracle/truffleruby/) - Ruby Programming Language 2.6.x
* [GraalJS](https://github.com/oracle/graaljs) - JavaScript and Node.js
* [FastR](https://github.com/oracle/fastr) - R Language
* [GraalPython](https://github.com/oracle/graalpython) - Python
* [TruffleRuby](https://github.com/oracle/truffleruby) - Ruby
* [SimpleLanguage](https://github.com/graalvm/simplelanguage) - A simple demonstration language for the GraalVM.


Expand Down
4 changes: 1 addition & 3 deletions THIRD_PARTY_LICENSE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -447,7 +447,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

================================================================================

ANTLR 4.7.2
ANTLR 4.9.2

Include the following verbatim in the documentation:

Expand Down Expand Up @@ -598,7 +598,6 @@ Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://www.antlr.org/license.html

[The BSD License]
Copyright (c) 2012 Terence Parr and Sam Harwell
All rights reserved.

Expand All @@ -615,7 +614,6 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
org.antlr » ST4 4.1
COPYRIGHT and LICENSE:

[The "BSD license"]
Copyright (c) 2011-2013 Terence Parr
All rights reserved.

Expand Down
10 changes: 10 additions & 0 deletions ci-resources.libsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// location of resources that can be easily overwritten
{
infra: {
ol8_bench_image: "<ol8_bench_image>",
benchmarking_config_repo: "<benchmarking_config_repo>",

notify_nexus_deploy: "<notify_nexus_deploy>",
notify_releaser_service: "<notify_releaser_service>"
}
}
9 changes: 6 additions & 3 deletions ci.jsonnet
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
# Compiler
local compiler = import 'compiler/ci.jsonnet';

# GraalWasm
local wasm = import 'wasm/ci.jsonnet';

Expand All @@ -7,9 +10,9 @@ local espresso = import 'espresso/ci.jsonnet';
# Sulong
local sulong = import 'sulong/ci.jsonnet';
{
# ensure that public entries in common.jsonnet can be resolved
# ensure that entries in common.jsonnet can be resolved
_checkCommon: (import 'common.jsonnet'),
ci_resources:: (import 'ci-resources.libsonnet'),
specVersion: "2",
builds: wasm.builds + espresso.builds + sulong.builds
builds: compiler.builds + wasm.builds + espresso.builds + sulong.builds
}

10 changes: 3 additions & 7 deletions common.hocon
Original file line number Diff line number Diff line change
Expand Up @@ -120,21 +120,17 @@ svm-common: ${mx} {

svm-common-linux-amd64: ${svm-common} ${linux-amd64} {
packages: {
make: ">=3.83"
gcc-build-essentials: ">=4.9.1" # GCC 4.9.0 fails on cluster
binutils: ">=2.30"
devtoolset: "==7" # GCC 7.3.1, make 4.2.1, binutils 2.28, valgrind 3.13.0
binutils: ">=2.34"
ruby: ">=2.1.0"
valgrind: ">=3.9.0"
}
timelimit: "55:00"
}

svm-common-linux-aarch64: ${svm-common} ${linux-aarch64} {
packages: {
make: ">=3.83"
gcc-build-essentials: ">=4.9.1" # GCC 4.9.0 fails on cluster
devtoolset: "==7" # GCC 7.3.1, make 4.2.1, binutils 2.28, valgrind 3.13.0
ruby: ">=2.1.0"
valgrind: ">=3.9.0"
}
timelimit: "55:00"
}
Expand Down
18 changes: 9 additions & 9 deletions common.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@
"README": "This file contains definitions that are useful for the hocon and jsonnet CI files of multiple repositories.",

"jdks": {
"openjdk8": {"name": "openjdk", "version": "8u292+05-jvmci-21.1-b02", "platformspecific": true },
"oraclejdk8": {"name": "oraclejdk", "version": "8u291+07-jvmci-21.1-b02", "platformspecific": true },
"oraclejdk8Debug": {"name": "oraclejdk", "version": "8u291+07-jvmci-21.1-b02-fastdebug", "platformspecific": true },
"openjdk8": {"name": "openjdk", "version": "8u292+09-jvmci-21.1-b05", "platformspecific": true },
"oraclejdk8": {"name": "oraclejdk", "version": "8u291+10-jvmci-21.1-b05", "platformspecific": true },
"oraclejdk8Debug": {"name": "oraclejdk", "version": "8u291+10-jvmci-21.1-b05-fastdebug", "platformspecific": true },

"openjdk11": {"name": "openjdk", "version": "11.0.3+7", "platformspecific": true },
"oraclejdk11": {"name": "oraclejdk", "version": "11.0.6+8", "platformspecific": true },
"labsjdk-ce-11": {"name": "labsjdk", "version": "ce-11.0.11+5-jvmci-21.1-b02", "platformspecific": true },
"labsjdk-ee-11": {"name": "labsjdk", "version": "ee-11.0.11+5-jvmci-21.1-b02", "platformspecific": true },
"labsjdk-ce-11": {"name": "labsjdk", "version": "ce-11.0.11+8-jvmci-21.1-b05", "platformspecific": true },
"labsjdk-ee-11": {"name": "labsjdk", "version": "ee-11.0.11+9-jvmci-21.1-b05", "platformspecific": true },

"oraclejdk16": {"name": "oraclejdk", "version": "16.0.1+4", "platformspecific": true },
"labsjdk-ce-16": {"name": "labsjdk", "version": "ce-16+36-jvmci-21.1-b02", "platformspecific": true },
"labsjdk-ce-16Debug": {"name": "labsjdk", "version": "ce-16+36-jvmci-21.1-b02-debug", "platformspecific": true },
"labsjdk-ee-16": {"name": "labsjdk", "version": "ee-16+36-jvmci-21.1-b02", "platformspecific": true },
"labsjdk-ee-16Debug": {"name": "labsjdk", "version": "ee-16+36-jvmci-21.1-b02-debug", "platformspecific": true }
"labsjdk-ce-16": {"name": "labsjdk", "version": "ce-16.0.1+9-jvmci-21.1-b05", "platformspecific": true },
"labsjdk-ce-16Debug": {"name": "labsjdk", "version": "ce-16.0.1+9-jvmci-21.1-b05-debug", "platformspecific": true },
"labsjdk-ee-16": {"name": "labsjdk", "version": "ee-16.0.1+9-jvmci-21.1-b05", "platformspecific": true },
"labsjdk-ee-16Debug": {"name": "labsjdk", "version": "ee-16.0.1+9-jvmci-21.1-b05-debug", "platformspecific": true }
},

"COMMENT" : "The devkits versions reflect those used to build the JVMCI JDKs (e.g., see devkit_platform_revisions in <jdk>/make/conf/jib-profiles.js)",
Expand Down
130 changes: 113 additions & 17 deletions common.jsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

local mx_version = (import "graal-common.json").mx_version,
local common_json = composable(import "common.json"),
local repo_config = import 'repo-configuration.libsonnet',
local jdks = common_json.jdks,
local deps = common_json.deps,
local downloads = common_json.downloads,
Expand All @@ -14,24 +15,78 @@
}
},

oraclejdk8:: { downloads+: { JAVA_HOME : jdks.oraclejdk8, EXTRA_JAVA_HOMES : { pathlist :[ jdks["labsjdk-ee-11"] ]} }},
oraclejdk8Only:: { downloads+: { JAVA_HOME : jdks.oraclejdk8 }},
oraclejdk8Debug:: { downloads+: { JAVA_HOME : jdks.oraclejdk8Debug, EXTRA_JAVA_HOMES : { pathlist :[ jdks["labsjdk-ee-11"] ]} }},
oraclejdk8OnlyDebug:: { downloads+: { JAVA_HOME : jdks.oraclejdk8Debug }},
eclipse:: downloads.eclipse,
jdt:: downloads.jdt,

build_base:: {
// holds location of CI resources that can easily be overwritten
ci_resources:: (import "ci-resources.libsonnet"),
},

// Heap settings
// *************
local small_heap = "1G",
local default_heap = "8G",
local large_heap = "31G", // strictly smaller than 32G to keep compressed oops enabled
local large_young_gen_heap = "27G", // tuned to reduce latency of large apps like SpecJBB2015
heap:: {
small:: {
environment+: {
XMS: small_heap,
XMX: small_heap
}
},
default:: {
environment+: {
XMS: default_heap,
XMX: default_heap
}
},
large:: {
environment+: {
XMS: large_heap,
XMX: large_heap
}
},
large_with_large_young_gen:: {
environment+: {
XMS: large_heap,
XMX: large_heap,
XMN: large_young_gen_heap
}
}
},

// JDK definitions
// ***************
# jdk_version is an hidden field that can be used to generate job names
local jdk8 = { jdk_version:: 8},
local jdk11 = { jdk_version:: 11},
local jdk16 = { jdk_version:: 16},

oraclejdk8:: jdk8 + { downloads+: { JAVA_HOME : jdks.oraclejdk8, EXTRA_JAVA_HOMES : { pathlist :[ jdks["labsjdk-ee-11"] ]} }},
oraclejdk8Only:: jdk8 + { downloads+: { JAVA_HOME : jdks.oraclejdk8 }},
oraclejdk8Debug:: jdk8 + { downloads+: { JAVA_HOME : jdks.oraclejdk8Debug, EXTRA_JAVA_HOMES : { pathlist :[ jdks["labsjdk-ee-11"] ]} }},
oraclejdk8OnlyDebug:: jdk8 + { downloads+: { JAVA_HOME : jdks.oraclejdk8Debug }},

openjdk8:: jdk8 + { downloads+: { JAVA_HOME : jdks.openjdk8 }},

openjdk8:: { downloads+: { JAVA_HOME : jdks.openjdk8 }},
oraclejdk11:: jdk11 + { downloads+: { JAVA_HOME : jdks.oraclejdk11 }},
oraclejdk16:: jdk16 + { downloads+: { JAVA_HOME : jdks.oraclejdk16 }},
openjdk11:: jdk11 + { downloads+: { JAVA_HOME : jdks.openjdk11 }},

oraclejdk11:: { downloads+: { JAVA_HOME : jdks.oraclejdk11 }},
oraclejdk16:: { downloads+: { JAVA_HOME : jdks.oraclejdk16 }},
openjdk11:: { downloads+: { JAVA_HOME : jdks.openjdk11 }},
"labsjdk-ce-11":: jdk11 + { downloads+: { JAVA_HOME : jdks["labsjdk-ce-11"] }},
"labsjdk-ee-11":: jdk11 + { downloads+: { JAVA_HOME : jdks["labsjdk-ee-11"] }},
labsjdk11:: self["labsjdk-" + repo_config.graalvm_edition + "-11"],
"labsjdk-ce-16":: jdk16 + { downloads+: { JAVA_HOME : jdks["labsjdk-ce-16"] }},
"labsjdk-ee-16":: jdk16 + { downloads+: { JAVA_HOME : jdks["labsjdk-ee-16"] }},
labsjdk16:: self["labsjdk-" + repo_config.graalvm_edition + "-16"],
"labsjdk-ce-16Debug":: jdk16 + { downloads+: { JAVA_HOME : jdks["labsjdk-ce-16Debug"] }},
"labsjdk-ee-16Debug":: jdk16 + { downloads+: { JAVA_HOME : jdks["labsjdk-ee-16Debug"] }},

"labsjdk-ce-11":: { downloads+: { JAVA_HOME : jdks["labsjdk-ce-11"] }},
"labsjdk-ee-11":: { downloads+: { JAVA_HOME : jdks["labsjdk-ee-11"] }},
"labsjdk-ce-16":: { downloads+: { JAVA_HOME : jdks["labsjdk-ce-16"] }},
"labsjdk-ee-16":: { downloads+: { JAVA_HOME : jdks["labsjdk-ee-16"] }},
"labsjdk-ce-16Debug":: { downloads+: { JAVA_HOME : jdks["labsjdk-ce-16Debug"] }},
"labsjdk-ee-16Debug":: { downloads+: { JAVA_HOME : jdks["labsjdk-ee-16Debug"] }},

// Hardware definitions
// ********************
common:: deps.common + self.mx + {
# enforce self.os (useful for generating job names)
os:: error "self.os not set",
Expand Down Expand Up @@ -60,7 +115,7 @@

amd64:: {
arch::"amd64",
capabilities+: [self.arch],
capabilities+: [self.arch]
},

aarch64:: {
Expand All @@ -73,6 +128,47 @@
"windows-amd64":: self.windows + self.amd64,
"linux-aarch64":: self.linux + self.aarch64,

eclipse:: downloads.eclipse,
jdt:: downloads.jdt,
// Benchmarking building blocks
// ****************************
bench_hw:: {
_bench_machine:: {
targets+: ["bench"],
machine_name:: error "machine_name must be set!",
local _machine_name = self.machine_name,
capabilities+: [_machine_name],
environment+: { "MACHINE_NAME": _machine_name },
numa_nodes:: [],
is_numa:: std.length(self.numa_nodes) > 0,
},

x52:: $.linux + $.amd64 + self._bench_machine + {
machine_name:: "x52",
capabilities+: ["no_frequency_scaling", "tmpfs25g"],
numa_nodes:: [0, 1]
},
xgene3:: $.linux + $.aarch64 + self._bench_machine + {
machine_name:: "xgene3",
capabilities+: [],
},
a12c:: $.linux + $.aarch64 + self._bench_machine + {
machine_name:: "a12c",
capabilities+: ["no_frequency_scaling", "tmpfs25g"],
numa_nodes:: [0, 1]
}
},

hwlocIfNuma(numa, cmd, node=0)::
if numa then
["hwloc-bind", "--cpubind", "node:"+node, "--membind", "node:"+node, "--"] + cmd
else
cmd,

parallelHwloc(cmd_node0, cmd_node1)::
// Returns a list of commands that will run cmd_nod0 on NUMA node 0
// concurrently with cmd_node1 on NUMA node 1 and then wait for both to complete.
[
$.hwlocIfNuma(true, cmd_node0, node=0) + ["&"],
$.hwlocIfNuma(true, cmd_node1, node=1) + ["&"],
["wait"]
]
}
5 changes: 5 additions & 0 deletions compiler/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

This changelog summarizes newly introduced optimizations that may be relevant to other teams.

## Version 21.2.0
* (GR-29770) Loop safepoint elimination: Not only consider 32bit loops for safepoint removal but also 64bit ones
that iterate in 32bit ranges.

## Version 21.1.0
* (GR-29126) Unify box optimizations in the compiler. Remove `-Dgraal.ReuseOutOfCacheBoxedValues=false`.
* (GR-28523) Optimize Box nodes: Optimizes box operations by re-using boxed representations
Expand All @@ -11,3 +15,4 @@ Box node optimization is enabled per default. Disable it with `-Dgraal.ReuseOutO
This improves ConcurrentHashMap performance.
* (GR-29337) Volatile loads were losing type information about the underlying field, resulting in unneeded casts.
This improves ConcurrentHashMap performance.
* (GR-28956) Use more informative `ProfileData` objects instead of raw branch probabilities and loop frequencies.
7 changes: 7 additions & 0 deletions compiler/ci.jsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
local graal_benchmarks = (import 'ci_common/benchmark-builders.jsonnet'),
local baseline_benchmarks = (import 'ci_includes/baseline-benchmarks.jsonnet'),
builds:
graal_benchmarks.builds +
baseline_benchmarks.builds
}
15 changes: 0 additions & 15 deletions compiler/ci_common/bench-aarch64.hocon
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,4 @@ aarch64.default-libgraal : ${aarch64.default} {
}

builds += [
# jargraal
${aarch64.default} ${bench-dacapo} ${aarch64-bench-notifications} ${labsjdk11} { targets: [bench, weekly], name: "bench-compiler-dacapo-11-linux-aarch64" }
${aarch64.default} ${bench-scala-dacapo} ${aarch64-bench-notifications} ${labsjdk11} { targets: [bench, weekly], name: "bench-compiler-scala-dacapo-11-linux-aarch64", timelimit: "45:00" }
${aarch64.default} ${bench-renaissance-no-db-shootout} ${aarch64-bench-notifications} ${labsjdk11} { targets: [bench, weekly], name: "bench-compiler-renaissance-11-linux-aarch64" }
${aarch64.default} ${bench-specjvm2008-Single} ${aarch64-bench-notifications} ${labsjdk11} { targets: [bench, weekly], name: "bench-compiler-specjvm2008-Single-11-linux-aarch64" }
${aarch64.default} ${bench-specjbb2005} ${aarch64-bench-notifications} ${labsjdk11} { targets: [bench, weekly], name: "bench-compiler-specjbb2005-11-linux-aarch64" }
${aarch64.default} ${bench-specjbb2015} ${aarch64-bench-notifications} ${labsjdk11} { targets: [bench, weekly], name: "bench-compiler-specjbb2015-11-linux-aarch64" }

# libgraal
${aarch64.default-libgraal} ${bench-dacapo} ${aarch64-bench-notifications} ${labsjdk11} { targets: [bench, weekly], name: "bench-compiler-dacapo-libgraal-11-linux-aarch64" }
${aarch64.default-libgraal} ${bench-scala-dacapo} ${aarch64-bench-notifications} ${labsjdk11} { targets: [bench, weekly], name: "bench-compiler-scala-dacapo-libgraal-11-linux-aarch64", timelimit: "45:00" }
${aarch64.default-libgraal} ${bench-renaissance-no-db-shootout} ${aarch64-bench-notifications} ${labsjdk11} { targets: [bench, weekly], name: "bench-compiler-renaissance-libgraal-11-linux-aarch64" }
${aarch64.default-libgraal} ${bench-specjvm2008-Single} ${aarch64-bench-notifications} ${labsjdk11} { targets: [bench, weekly], name: "bench-compiler-specjvm2008-Single-libgraal-11-linux-aarch64" }
${aarch64.default-libgraal} ${bench-specjbb2005} ${aarch64-bench-notifications} ${labsjdk11} { targets: [bench, weekly], name: "bench-compiler-specjbb2005-libgraal-11-linux-aarch64" }
${aarch64.default-libgraal} ${bench-specjbb2015} ${aarch64-bench-notifications} ${labsjdk11} { targets: [bench, weekly], name: "bench-compiler-specjbb2015-libgraal-11-linux-aarch64" }
]
Loading

0 comments on commit 3e34247

Please sign in to comment.