Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2024-03-13 backports 21 sync #696

Merged
merged 221 commits into from
Mar 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
221 commits
Select commit Hold shift + click to select a range
8d978c9
Minor simplifications and cleanups.
christianhaeubl Dec 5, 2023
2e5115a
Change code lifecycle.
christianhaeubl Dec 11, 2023
f12a23e
For JIT compiled code that is on the stack, only walk the tether.
christianhaeubl Dec 13, 2023
ae8ac27
[GR-50682] Quarkus fails even if class loader disabled.
tzezula Dec 5, 2023
5574aa0
Remove Heap.allowPageSizeMismatch().
christianhaeubl Dec 19, 2023
49125a9
Provide a method to set the physical memory size.
christianhaeubl Jan 5, 2024
ae49000
GR-50494 : release GraalVM 23.1.2
marwan-hallaoui Dec 29, 2023
4ca99ba
introduce ReportFatalErroronOutOfMemoryError
teshull Nov 8, 2023
6a7d580
Mark all killed XMM registers as @Temp in AMD64SHA256AVX2Op.
mur47x111 Dec 1, 2023
2e6df0f
Add memory barrier to HeapImpl.getAllClasses().
christianhaeubl Jan 12, 2024
d304cd3
Improve crash log.
christianhaeubl Jan 12, 2024
53cf8c0
New dev cycle GraalVM 23.1.3
elkorchi Jan 12, 2024
7d158e5
Create lambda names format consistent with the JDK lambda names format.
sstanoje Aug 21, 2023
fdbbd6e
clean up
roberttoyonaga Dec 15, 2023
68d8f56
style fixes
roberttoyonaga Dec 15, 2023
da64b2d
fix debug section alignment which can lead to corrupt debug info
esytnik Dec 18, 2023
46cd4d6
Constant fold reflection lookups in sun.nio.ch.Reflect
Dec 15, 2023
b3b3adf
Fix style issues
hamzaGhaissi Jan 18, 2024
d5157b5
Create additional artifacts only on successful build.
petalex Dec 13, 2023
db1fa4c
Only use -H:Path validation in non-bundle mode
olpaw Jan 15, 2024
2e1c7f8
Explain reasoning as comment
olpaw Jan 15, 2024
946142f
[GR-51425] Backport to 23.1: Only use -H:Path validation in non-bundl…
kassifar Jan 19, 2024
0766835
Fix Thread.getStackTrace() right after Thread.start().
peter-hofer Oct 13, 2023
82bdbc9
update JVMCI to 23.1-b31
OracleLabsAutomation Jan 19, 2024
4c69ead
deploy snapshots
marwan-hallaoui Jan 20, 2024
6bf931f
[GR-51092] Backport to 23.1: Fix debug section alignment which can le…
medoussboug Jan 22, 2024
45f599e
Fix Cpuid1Ecx feature parsing for AMD CPUs.
fniephaus Jan 15, 2024
bea3a2b
Fix a bug in the IsolateArgumentParser.
christianhaeubl Jan 19, 2024
48d7d54
[GR-51295] Update JVMCI to 23.1-b31.
OracleLabsAutomation Jan 23, 2024
d1f6a63
[GR-50968] Backport to 23.1: Change lifecycle of JIT-compiled code.
christianhaeubl Jan 24, 2024
9d95a72
Preprocess `_MSC_FULL_VER` to detect `cl.exe` version info.
fniephaus Dec 18, 2023
0032f0c
Drop redundant architecture error for Windows.
fniephaus Dec 20, 2023
a29d05a
Mark `skipLineIfHasNext` as static.
fniephaus Jan 24, 2024
b2aa0a7
[GR-51075] Backport to 23.1: JFR cleanups
hamzaGhaissi Jan 24, 2024
3107945
[GR-51612] Assertion error when internal resource cache is overriden …
tzezula Jan 24, 2024
2807b3b
Use unsigned monitor and identity hash offsets and guarantee (not ass…
peter-hofer Nov 9, 2023
a75d4d3
[GR-51311] Backport to 23.1: Crash log improvements.
christianhaeubl Jan 25, 2024
ac79cb7
update JVMCI to 23.1-b32
OracleLabsAutomation Jan 25, 2024
1d415a1
Fix identity hash offset assertion
brahimhaddou Jan 25, 2024
643e11f
Always apply JVMTI-related substitutions.
fniephaus Jan 25, 2024
7748dc7
Adhere to naming convention and add missing `onlyWith`.
fniephaus Jan 25, 2024
0207cfb
Update windows devkit for jdk21 to VS2022-17.6.5+1
marwan-hallaoui Jan 25, 2024
6144104
Correctly print JSON values in agent trace files.
peter-hofer Oct 24, 2023
ae6824f
Support access-filter-file for native-image-configure.
peter-hofer Oct 24, 2023
788f48d
[GR-51028] Backport to 23.1: Constant fold reflection lookups in sun.…
selhagani Jan 25, 2024
6eab4a0
[GR-50916] Backport to 23.1: Calling getStackTrace on recently starte…
elkorchi Jan 25, 2024
320cbb9
Minor fixes and cleanups.
christianhaeubl Dec 6, 2023
4e9f594
fix coding style
brahimhaddou Jan 26, 2024
a375a0a
deploy snapshots
marwan-hallaoui Jan 26, 2024
ef489ec
[GR-51610] Update JVMCI to 23.1-b32.
OracleLabsAutomation Jan 26, 2024
154b109
[GR-51483] Backport to 23.1: Fix a bug in the IsolateArgumentParser.
selhagani Jan 27, 2024
ea80278
[GR-51088] Backport to 23.1: Preprocess `_MSC_FULL_VER` to detect `cl…
selhagani Jan 27, 2024
f2e5126
[GR-50979] Backport to 23.1: Quarkus fails even if class loader disab…
tzezula Jan 27, 2024
5d15e9e
[GR-51377] Backport to 23.1: Fix Cpuid1Ecx feature parsing for AMD CPUs.
kassifar Jan 27, 2024
6b2b2ca
[GR-51070] Backport to 23.1: Create additional artifacts only on succ…
selhagani Jan 28, 2024
83af6f2
Use a common ThreadStartRoutinePrologue on all platforms.
christianhaeubl Jan 10, 2024
12cf267
Aarch: Add means for post-processing code after emitting from LIR.
rmosaner Jan 11, 2024
42d45c5
Fix a Windows-specific thread handle leak.
christianhaeubl Jan 18, 2024
7277719
Avoid deadlocks when the VM is out-of-memory and other threading-rela…
christianhaeubl Jan 8, 2024
11a8cc7
[GR-50823] Fix stamp inversion for ZeroExtend and SignExtend operations.
rmosaner Sep 27, 2023
15785a2
[GR-50823] Unittests for stamp inversion during conditional elimination.
rmosaner Oct 3, 2023
344f9bc
[GR-50823] Infer input msb during stamp inversion for integer SignExt…
rmosaner Oct 3, 2023
d39a069
[GR-50823] Incorporate the bounds of stampToInvert when calculating t…
rmosaner Oct 10, 2023
c917e4c
[GR-51641] Always apply JVMTI-related substitutions.
fniephaus Jan 30, 2024
28d187a
Use ModuleFinder to collect names of application modules
olpaw Sep 5, 2023
f62b563
Remove pre-python 3 support code
olpaw Sep 6, 2023
8a44339
Fix SyntaxWarning: invalid escape sequence '\.'
olpaw Sep 14, 2023
e114215
[GR-50881] Backport to 23.1: Correctly handle printing certain JSON v…
elkorchi Jan 31, 2024
ed6d51c
[GR-50802] Backport to 23.1: Minor fixes and cleanups.
medoussboug Jan 31, 2024
a728de4
[GR-51689] [GR-51516] Avoid deadlocks when the VM is out-of-memory an…
christianhaeubl Jan 31, 2024
0e5bd79
[GR-51612] Backport to 23.1: Assertion error when internal resource c…
tzezula Jan 31, 2024
81785b3
Log when NFI unloads libraries
eregon Oct 3, 2023
62c8a16
Return a deterministic value on exception in native closure
eregon Oct 3, 2023
ea039cd
Fix UnsupportedMessageException exceptions in Sulong with a non-Abstr…
eregon Oct 6, 2023
2256714
Add TruffleEnv.exceptionCheck() in NFI to check for pending exceptions
eregon Oct 19, 2023
2790be5
Remove bool workaround for old Windows compilers
eregon Oct 27, 2023
6ff4ce8
[GR-51218] Backport to 23.1: Introduce ReportFatalErrorOnOutOfMemoryE…
teshull Jan 31, 2024
6b583aa
Add checks for recently started threads without Thread object.
peter-hofer Jan 25, 2024
26a6928
Substitute synchronized NullPointerException.fillInStackTrace which i…
peter-hofer Jan 25, 2024
3455075
prevent macronodes in deoptimization targets
teshull Jan 16, 2024
fbffa34
[GR-51275] Backport 23.1 : Mark all killed XMM registers as @Temp in …
mur47x111 Feb 2, 2024
b17d004
[GR-50878] Backport 23.1 : Use unsigned monitor and identity hash off…
brahimhaddou Feb 3, 2024
34b4546
Invocation profiles are not needed for JIT compilation
Jan 19, 2024
536d062
induction variables: only non overflowing constant properties should be
davleopo Jan 19, 2024
774dc8b
guard against deleting canonicalizer replacement.
teshull Feb 2, 2024
8963f8f
Add regression test
teshull Feb 5, 2024
2f2e2c2
[GR-51175] [GR-51182] Backport to 23.1: Remove Heap.allowPageSizeMism…
christianhaeubl Feb 5, 2024
eb34e94
[GR-51803] Backport to 23.1: Prevent macronodes in deoptimization tar…
teshull Feb 5, 2024
d12507e
[GR-50823] Backport to 23.1: Fix stamp inversion for ZeroExtend and S…
aelmassa Feb 5, 2024
27341ca
[GR-51392] Backport to 23.1: Aarch: Add means for post-processing cod…
aelmassa Feb 6, 2024
b0f48ec
Remove modules from -imagemp that are already provided by other means
olpaw Sep 14, 2023
f5a4319
Remove debug code
olpaw Sep 19, 2023
4789af2
On Windows jdk native library jimage does not depend on stdc++
olpaw Sep 19, 2023
0cc362e
Building driver into image requires JRTFileSystem support
olpaw Sep 19, 2023
148b510
Fix return type of substituted method
olpaw Sep 19, 2023
680ad8b
Ensure libstdc++ gets statically linked into agents
olpaw Sep 20, 2023
299696e
Implement -H:+StaticLibStdCpp and use if for building the agents
olpaw Sep 20, 2023
461cb43
Ensure `ModuleFinder.of` and `ImageReader.open` are not used when ima…
olpaw Sep 21, 2023
f2043f9
Only use full driver build args when building the driver image
olpaw Sep 21, 2023
e00d1fb
Remove obsolete agent-based image build code.
olpaw Sep 25, 2023
60801a9
Ensure jimage static jdk library get statically linked
olpaw Oct 3, 2023
e17347a
Do not allow jdk.internal.jimage.NativeImageBuffer at image-runtime
olpaw Oct 4, 2023
b6f8be7
Checkstyle fix
olpaw Oct 4, 2023
f50a66a
Factor out common use of `dynamicLibC || staticLibCpp`
olpaw Oct 10, 2023
60ab8e2
Note removal of native-image-agent `build`-option in CHANGELOG
olpaw Oct 10, 2023
b2468c6
[GR-51782] Backport to 23.1: Handle recently started threads without …
peter-hofer Feb 7, 2024
b6c5053
remove unsupported jobs
marwan-hallaoui Feb 1, 2024
023b156
remove wasm gate jobs are it's experimental
marwan-hallaoui Feb 7, 2024
a531185
remove python gate job
marwan-hallaoui Feb 7, 2024
04880c3
migrate truffle jobs to OracleJDK21
marwan-hallaoui Feb 7, 2024
3b430e8
sync
marwan-hallaoui Feb 7, 2024
054353b
remove sdk job gate based on Oracle JDK17
marwan-hallaoui Feb 7, 2024
4a09712
migrate jobs to use labsjdk-ce-21
marwan-hallaoui Feb 7, 2024
08b6e54
remove jobs running on labsjdk-17
marwan-hallaoui Feb 7, 2024
eae8c56
remove unsupported espresso jobs
marwan-hallaoui Feb 7, 2024
7dd9f34
fix common.json
marwan-hallaoui Feb 7, 2024
6597bbe
[GR-51752] Backport to 23.1: Invocation profiles are not needed for J…
hamzaGhaissi Feb 8, 2024
3bc02dc
Properly catch exceptions during shutdown.
christianhaeubl Feb 1, 2024
c1f396e
[GR-51763] Backport to 23.1: Incompatible NFI library change to the l…
tzezula Feb 8, 2024
a0eb340
remove candidate sulong jobs
marwan-hallaoui Feb 8, 2024
77c3bae
revert needed changes
marwan-hallaoui Feb 8, 2024
f074e46
Make segfault handler more robust.
christianhaeubl Dec 7, 2023
adcecfa
Fix failure when no resource bundle nullary constructor is present
loicottet Dec 7, 2023
c212f77
[GR-50673] Backport to 23.1: Make lambda class names format consisten…
elkorchi Feb 8, 2024
ee3cc95
process repeatable ExportMessage annotations for interop nodes
javeleon Feb 2, 2024
e84ceea
simplify processing repeatable annotations
javeleon Feb 5, 2024
5c492d4
improve readability of generated interop nodes by splitting up in tar…
javeleon Feb 6, 2024
041c117
use method element to construct targetMethodName to avoid passing arg…
javeleon Feb 6, 2024
47312b3
use exported message name to construct super class name
javeleon Feb 6, 2024
18472e3
[GR-51386] Backport to 23.1: Consolidate application module name dete…
selhagani Feb 9, 2024
e9804b7
Don't try to incorrectly move virtual state inputs out of loops
gergo- Sep 15, 2023
feae856
graph order: run some form of schedule verification in all tiers if
davleopo Aug 11, 2023
8eec286
Fix MacOS-specific perf data issue.
christianhaeubl Feb 9, 2024
abc8457
[GR-51582] Backport to 23.1: IV: only non overflowing constant proper…
medoussboug Feb 9, 2024
aa09318
[GR-51829] Backport to 23.1: Properly catch exceptions during shutdown.
selhagani Feb 10, 2024
338fbb9
ensure CompilationResult.methods does not contain duplicates
dougxc Feb 5, 2024
ce42cce
[GR-51438] [GR-51888] Backport to 23.1: Don't rethrow internal parser…
medoussboug Feb 11, 2024
85a704f
[GR-51883] Backport to 23.1: Fix annotation processor for Espresso in…
aelmassa Feb 12, 2024
49eeca2
Fix a deadlock in IsolateAwareTruffleCompiler.tearDownIsolateOnShutdown.
christianhaeubl Feb 7, 2024
58d1205
Execute LogManager shutdown hook after all other shutdown hooks.
christianhaeubl Dec 15, 2023
af441a5
fix enumerator : remove check on removed sulong gates
marwan-hallaoui Feb 12, 2024
6fbfab8
restore needed wasm jobs and remove jdk17 based one
marwan-hallaoui Feb 12, 2024
c8da787
Sync ci/ci_common/common.jsonnet file
marwan-hallaoui Feb 12, 2024
0aee25d
revert used JDK for gate-truffle-javadoc
marwan-hallaoui Feb 13, 2024
d163c1a
remove unsed labsjdk20 and labsjdk19 vars
marwan-hallaoui Feb 13, 2024
4ad1e83
restore native-image job
marwan-hallaoui Feb 13, 2024
cd45732
Add CompilationIsolateOptions.
christianhaeubl Jan 29, 2024
3429c66
Parse compilation isolate arguments even if ParseRuntimeOptions is di…
christianhaeubl Feb 1, 2024
cc2d642
[GR-51744] Backport to 23.1: Fix possible infinite recursion in Abstr…
aelmassa Feb 13, 2024
9e6646c
[GR-51957] Backport to 23.1: Fix a deadlock in IsolateAwareTruffleCom…
selhagani Feb 14, 2024
9da6930
Disable MethodHandle inlining blocking.
cstancu Nov 28, 2023
2931802
Disable profiling of guard-with-test method handles
Dec 27, 2023
1a4575e
Eagerly initialize VarHandle objects before method handle intrinsific…
Feb 14, 2024
889386c
Allow recursive inlining during method handle intrinsification
Feb 14, 2024
c470dac
Allow concrete subtypes of MethodHandle and VarHandle as parameters w…
Feb 15, 2024
19bc7df
Changelog entry
Feb 14, 2024
436635c
Disable failing assertion
Feb 15, 2024
07c4519
Workaround for a build-time crash.
christianhaeubl Feb 8, 2024
2ccde4e
[GR-51893][GR-51591] Backport to 23.1: Don't try to incorrectly move …
kassifar Feb 15, 2024
3130c73
[GR-51828] Backport to 23.0: Add CompilationIsolateOptions.
hamzaGhaissi Feb 16, 2024
ca6a570
[GR-52063] Backport to 23.1: Workaround for a build-time crash.
aelmassa Feb 16, 2024
4c287c7
[GR-51799] Cleanup CPU 23.1 : remove unsupported deploy jobs and gate…
marwan-hallaoui Feb 16, 2024
da8f618
Improve uncaught exception handler and error handling in CEntryPointS…
christianhaeubl Feb 12, 2024
97d302c
Fix MacOS-specific perf data issue.
medoussboug Feb 16, 2024
c928ec5
Build GraalVM on Big Sur
gilles-duboscq Mar 8, 2023
5314fa4
Add new darwin-aarch64 gates back
gilles-duboscq Nov 10, 2023
b941178
Allow sulong gate to run on big sur
gilles-duboscq Nov 10, 2023
82ea22b
Don't optimize away Narrow in comparisons with mixed signedness
gergo- Feb 2, 2024
7bfd4de
Add option ImplicitExceptionWithoutStacktraceIsFatal.
christianhaeubl Feb 5, 2024
4855456
Update JVMCI to 23.1-b34
OracleLabsAutomation Feb 15, 2024
7866c0c
[GR-52111] Update JVMCI to 23.1-b34.
OracleLabsAutomation Feb 19, 2024
234ff50
[GR-50971] Backport to 23.1 : Make segfault handler more robust.
TheTaha-Alamine Feb 20, 2024
c5ba9e9
[GR-52104] Backport to 23.1: Don't optimize away Narrow in comparison…
hamzaGhaissi Feb 21, 2024
68da470
[GR-51331] Backport to 23.1 : Fix failure when no resource bundle nul…
TheTaha-Alamine Feb 21, 2024
467f833
[GR-51229] Backport to 23.1: Build GraalVM on Big Sur.
aelmassa Feb 21, 2024
eba1d09
[GR-51319] Backport to 23.1: Improve intrinsification of method handles.
Feb 22, 2024
87f6702
Update JVMCI to 23.1-b35 (21.0.3+5)
aelmassa Feb 22, 2024
976dcb6
[GR-52231] Update JVMCI to 23.1-b35
OracleLabsAutomation Feb 22, 2024
a05423d
[GR-52019] Backport to 23.1: Improve uncaught exception handler and e…
selhagani Feb 22, 2024
cc9adcc
[GR-51926] Backport to 23.1: Ensure CompilationResult.methods does no…
elkorchi Feb 23, 2024
1734325
Backport to 23.1: Do not inline ThrowableTracer#traceError.
tzezula Feb 23, 2024
b5f86be
[GR-51478] Backport to 23.1: Execute LogManager shutdown hook after a…
kassifar Feb 25, 2024
3a18dd7
loop fragment: ensure we are not killing control flow when we have
davleopo Feb 19, 2024
87d8900
Make ContextPolicyTest#testOptionDescriptorContextReuse more robust.
jchalou Jan 11, 2024
fc87f2d
[GR-52225] Backport to 23.1: Loop fragment: ensure we are not killing…
medoussboug Feb 26, 2024
c99ff21
fixed read nodes must only be removed if they are not used as null
davleopo Feb 5, 2024
8265389
Introduce PolyglotInstrument#readyForContextEvents
jchalou Feb 6, 2024
255e5fe
Adapt fix
kassifar Feb 28, 2024
4ad5d74
switch aarch64registerconfig to check for darwin instead of not darwin.
teshull Feb 22, 2024
fa36b12
[GR-52316] Make ContextPolicyTest#testOptionDescriptorContextReuse mo…
elkorchi Feb 29, 2024
41bb012
Make options engine.CompilerThreads and engine.CompilationFailureActi…
jchalou Feb 2, 2024
97c559b
[GR-52114] Backport to 23.1: Do not inline ThrowableTracer#traceError.
tzezula Feb 29, 2024
83e7e3d
[GR-52139] Backport to 23.1: Introduce PolyglotInstrument#readyForCon…
kassifar Feb 29, 2024
dfbef63
[GR-51869] Backport to 23.1: Fixed read nodes must only be removed if…
kassifar Feb 29, 2024
eeb3fda
Update JVMCI to 23.1-b36
OracleLabsAutomation Feb 28, 2024
0ee7c73
[GR-52325] Backport to 23.1: Deopt loops in NetSuite JS code.
woess Feb 29, 2024
e4c4a43
Run the PureNFATransitionGenerator in reverse for lookbehinds
jirkamarsik Dec 11, 2023
7f55375
Always involve both caretsOnPath and dollarsOnPath when deduplicating
jirkamarsik Jan 23, 2024
0de1c38
In complex empty check flavors, build quantifier guards also in DFA mode
jirkamarsik Jan 29, 2024
748dda0
Pop guards and CG events using stack marks
jirkamarsik Jan 29, 2024
0d02196
Reduce trivial and impossible guards when building DFA
jirkamarsik Jan 29, 2024
fcda924
When buildingDFA, use deduplication instead of insideLoops to ensure …
jirkamarsik Jan 30, 2024
8e4326a
Style fixes
jirkamarsik Jan 30, 2024
585e99e
Add documentation for recent changes in NFATraversalRegexASTVisitor
jirkamarsik Jan 30, 2024
81b8a94
TRegex: fix internal inconsistencies between matching modes
djoooooe Jan 29, 2024
439b55c
TRegex: fix final state transition precedence in simpleCG mode
djoooooe Jan 30, 2024
e327ce9
TRegex: remove redundant condition in DFAGenerator
djoooooe Feb 2, 2024
962db1d
Remove unsound quantifier reduction in OracleDBRegexParser
jirkamarsik Feb 3, 2024
96fdd0f
Fix the calculation of enclosedCaptureGroups when wrapping groups
jirkamarsik Feb 3, 2024
9f4896f
Use quantifier's zeroWidthIndex, not the guard's index
jirkamarsik Feb 6, 2024
53b75be
Disable empty checks monitor capture groups for OracleDB
jirkamarsik Feb 6, 2024
84b5852
Passing all OracleDBTests now
jirkamarsik Feb 13, 2024
3e9e96f
Restore JavaScript support in NFATraversalRegexASTVisitor
jirkamarsik Feb 16, 2024
52363e6
Fix references to checkEmptyMatch in comments
jirkamarsik Feb 19, 2024
b99d0ce
TRegex: fix various parser bugs
djoooooe Feb 29, 2024
2c89b3a
TRegex: update OracleDB unit tests
djoooooe Feb 29, 2024
c9fb4ab
[GR-52425] [GR-52426] [GR-52428] [GR-52429] [GR-52430] Backport to 23…
djoooooe Mar 1, 2024
f84dbd7
[GR-52367] Update JVMCI to 23.1-b36
OracleLabsAutomation Mar 1, 2024
b13aa2b
[GR-52237] Backport to 23.1: Make options engine.CompilerThreads and …
medoussboug Mar 2, 2024
cee7cbd
[GR-52310] Backport to 23.1: switch aarch64registerconfig to check fo…
hamzaGhaissi Mar 5, 2024
3afc7c4
Merge upstream graalvm-for-jdk17-community-backports master branch
zakkak Mar 13, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 0 additions & 7 deletions ci/ci_common/common.jsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,8 @@ common + common.frequencies + {
} + common.jdks + {
# Aliases to edition specific labsjdks
labsjdk17:: self["labsjdk-" + repo_config.graalvm_edition + "-17"],
labsjdk19:: self["labsjdk-" + repo_config.graalvm_edition + "-19"],
labsjdk17Debug:: self["labsjdk-" + repo_config.graalvm_edition + "-17Debug"],
labsjdk19Debug:: self["labsjdk-" + repo_config.graalvm_edition + "-19Debug"],
labsjdk17LLVM:: self["labsjdk-" + repo_config.graalvm_edition + "-17-llvm"],
labsjdk19LLVM:: self["labsjdk-" + repo_config.graalvm_edition + "-19-llvm"],

labsjdk20:: self["labsjdk-" + repo_config.graalvm_edition + "-20"],
labsjdk20Debug:: self["labsjdk-" + repo_config.graalvm_edition + "-20Debug"],
labsjdk20LLVM:: self["labsjdk-" + repo_config.graalvm_edition + "-20-llvm"],

labsjdk21:: self["labsjdk-" + repo_config.graalvm_edition + "-21"],
labsjdk21Debug:: self["labsjdk-" + repo_config.graalvm_edition + "-21Debug"],
Expand Down
16 changes: 3 additions & 13 deletions ci/common.jsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,6 @@ local common_json = import "../common.json";
} + {
[name]: common_json.jdks[name] + { jdk_version:: 17 }
for name in ["oraclejdk17"] + variants("labsjdk-ce-17") + variants("labsjdk-ee-17")
} + {
[name]: common_json.jdks[name] + { jdk_version:: 19 }
for name in ["oraclejdk19"] + variants("labsjdk-ce-19") + variants("labsjdk-ee-19")
} + {
[name]: common_json.jdks[name] + { jdk_version:: 20 }
for name in ["oraclejdk20"] + variants("labsjdk-ce-20") + variants("labsjdk-ee-20")
} + {
[name]: common_json.jdks[name] + { jdk_version:: 21 }
for name in ["oraclejdk21"] + variants("labsjdk-ce-21") + variants("labsjdk-ee-21")
Expand All @@ -43,11 +37,6 @@ local common_json = import "../common.json";
for name in std.objectFields(jdks_data)
} + {
# Some convenient JDK aliases which don't require ["name"] for frequently-used JDKs
labsjdk17ce: self["labsjdk-ce-17"],
labsjdk17ee: self["labsjdk-ee-17"],

labsjdk20ce: self["labsjdk-ce-20"],
labsjdk20ee: self["labsjdk-ee-20"],

labsjdkLatestCE: self["labsjdk-ce-21"],
labsjdkLatestEE: self["labsjdk-ee-21"],
Expand All @@ -58,7 +47,7 @@ local common_json = import "../common.json";
"windows-jdk17": { packages+: { "devkit:VS2022-17.1.0+1": "==0" }},
"windows-jdk19": { packages+: { "devkit:VS2022-17.1.0+1": "==0" }},
"windows-jdk20": { packages+: { "devkit:VS2022-17.1.0+1": "==0" }},
"windows-jdk21": { packages+: { "devkit:VS2022-17.1.0+1": "==1" }},
"windows-jdk21": { packages+: { "devkit:VS2022-17.6.5+1": "==0" }},
"windows-jdk22": { packages+: { "devkit:VS2022-17.1.0+1": "==1" }},
"linux-jdk17": { packages+: { "devkit:gcc11.2.0-OL6.4+1": "==0" }},
"linux-jdk19": { packages+: { "devkit:gcc11.2.0-OL6.4+1": "==0" }},
Expand Down Expand Up @@ -264,7 +253,8 @@ local common_json = import "../common.json";
},

local linux = deps_linux + common + { os:: "linux", capabilities+: [self.os] },
local darwin = deps_darwin + common + { os:: "darwin", capabilities+: [self.os] },
# Run darwin jobs on Big Sur or later by excluding all older versions
local darwin = deps_darwin + common + { os:: "darwin", capabilities+: [self.os, "!darwin_sierra", "!darwin_mojave", "!darwin_catalina"] },
local windows = deps_windows + common + { os:: "windows", capabilities+: [self.os] },
local windows_server_2016 = windows + { capabilities+: ["windows_server_2016"] },

Expand Down
2 changes: 1 addition & 1 deletion ci_includes/publish-javadoc.jsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
},

local all_builds = [
common.post_merge + linux_amd64 + common.labsjdk17 + javadoc_publisher,
common.post_merge + linux_amd64 + common.labsjdk21 + javadoc_publisher,
],
// adds a "defined_in" field to all builds mentioning the location of this current file
builds:: [{ defined_in: std.thisFile } + b for b in all_builds]
Expand Down
22 changes: 3 additions & 19 deletions common.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,29 +18,13 @@
"labsjdk-ee-17Debug": {"name": "labsjdk", "version": "ee-17.0.8+2-jvmci-23.1-b02-debug", "platformspecific": true },
"labsjdk-ee-17-llvm": {"name": "labsjdk", "version": "ee-17.0.8+2-jvmci-23.1-b02-sulong", "platformspecific": true },

"oraclejdk19": {"name": "jpg-jdk", "version": "19", "build_id": "26", "release": true, "platformspecific": true, "extrabundles": ["static-libs"]},
"labsjdk-ce-19": {"name": "labsjdk", "version": "ce-19.0.1+10-jvmci-23.0-b04", "platformspecific": true },
"labsjdk-ce-19Debug": {"name": "labsjdk", "version": "ce-19.0.1+10-jvmci-23.0-b04-debug", "platformspecific": true },
"labsjdk-ce-19-llvm": {"name": "labsjdk", "version": "ce-19.0.1+10-jvmci-23.0-b04-sulong", "platformspecific": true },
"labsjdk-ee-19": {"name": "labsjdk", "version": "ee-19.0.2+7-jvmci-23.0-b05", "platformspecific": true },
"labsjdk-ee-19Debug": {"name": "labsjdk", "version": "ee-19.0.2+7-jvmci-23.0-b05-debug", "platformspecific": true },
"labsjdk-ee-19-llvm": {"name": "labsjdk", "version": "ee-19.0.2+7-jvmci-23.0-b05-sulong", "platformspecific": true },

"oraclejdk20": {"name": "jpg-jdk", "version": "20", "build_id": "34", "release": true, "platformspecific": true, "extrabundles": ["static-libs"]},
"labsjdk-ce-20": {"name": "labsjdk", "version": "ce-20.0.1+9-jvmci-23.1-b02", "platformspecific": true },
"labsjdk-ce-20Debug": {"name": "labsjdk", "version": "ce-20.0.1+9-jvmci-23.1-b02-debug", "platformspecific": true },
"labsjdk-ce-20-llvm": {"name": "labsjdk", "version": "ce-20.0.1+9-jvmci-23.1-b02-sulong", "platformspecific": true },
"labsjdk-ee-20": {"name": "labsjdk", "version": "ee-20.0.2+2-jvmci-23.1-b02", "platformspecific": true },
"labsjdk-ee-20Debug": {"name": "labsjdk", "version": "ee-20.0.2+2-jvmci-23.1-b02-debug", "platformspecific": true },
"labsjdk-ee-20-llvm": {"name": "labsjdk", "version": "ee-20.0.2+2-jvmci-23.1-b02-sulong", "platformspecific": true },

"oraclejdk21": {"name": "jpg-jdk", "version": "21", "build_id": "33", "release": true, "platformspecific": true, "extrabundles": ["static-libs"]},
"labsjdk-ce-21": {"name": "labsjdk", "version": "ce-21.0.2+13-jvmci-23.1-b30", "platformspecific": true },
"labsjdk-ce-21Debug": {"name": "labsjdk", "version": "ce-21.0.2+13-jvmci-23.1-b30-debug", "platformspecific": true },
"labsjdk-ce-21-llvm": {"name": "labsjdk", "version": "ce-21.0.2+13-jvmci-23.1-b30-sulong", "platformspecific": true },
"labsjdk-ee-21": {"name": "labsjdk", "version": "ee-21.0.2+13-jvmci-23.1-b30", "platformspecific": true },
"labsjdk-ee-21Debug": {"name": "labsjdk", "version": "ee-21.0.2+13-jvmci-23.1-b30-debug", "platformspecific": true },
"labsjdk-ee-21-llvm": {"name": "labsjdk", "version": "ee-21.0.2+13-jvmci-23.1-b30-sulong", "platformspecific": true },
"labsjdk-ee-21": {"name": "labsjdk", "version": "ee-21.0.3+6-jvmci-23.1-b36", "platformspecific": true },
"labsjdk-ee-21Debug": {"name": "labsjdk", "version": "ee-21.0.3+6-jvmci-23.1-b36-debug", "platformspecific": true },
"labsjdk-ee-21-llvm": {"name": "labsjdk", "version": "ee-21.0.3+6-jvmci-23.1-b36-sulong", "platformspecific": true },

"oraclejdk22": {"name": "jpg-jdk", "version": "22", "build_id": "2", "release": true, "platformspecific": true, "extrabundles": ["static-libs"]}
},
Expand Down
2 changes: 1 addition & 1 deletion compiler/mx.compiler/suite.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"sourceinprojectwhitelist" : [],

"groupId" : "org.graalvm.compiler",
"version" : "23.1.2.1",
"version" : "23.1.3.0",
"release" : False,
"url" : "http://www.graalvm.org/",
"developer" : {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
/*
* Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package org.graalvm.compiler.core.test;

import org.graalvm.compiler.nodes.ConstantNode;
import org.graalvm.compiler.nodes.FixedGuardNode;
import org.graalvm.compiler.nodes.IfNode;
import org.graalvm.compiler.nodes.LogicNode;
import org.graalvm.compiler.nodes.NodeView;
import org.graalvm.compiler.nodes.StructuredGraph;
import org.graalvm.compiler.nodes.ValueNode;
import org.graalvm.compiler.nodes.calc.AndNode;
import org.graalvm.compiler.nodes.calc.IntegerEqualsNode;
import org.graalvm.compiler.nodes.calc.IntegerTestNode;
import org.graalvm.compiler.nodes.calc.SignExtendNode;
import org.graalvm.compiler.nodes.util.GraphUtil;
import org.graalvm.compiler.phases.common.ConditionalEliminationPhase;
import org.graalvm.compiler.nodes.StructuredGraph.AllowAssumptions;
import org.junit.Test;

import jdk.vm.ci.code.InvalidInstalledCodeException;
import jdk.vm.ci.meta.DeoptimizationAction;
import jdk.vm.ci.meta.DeoptimizationReason;

/**
* Tests the correctness of conditional elimination when inverting stamps along
* {@link SignExtendNode}. The test artificially creates a graph whith the optimizable pattern:
* {@code ((val & CONST) == CONST)}, which provides information about the set bits in val, if the
* condition is used in a guard which is assumed to hold. The partial information about bits which
* are set in {@code x} are propagated "upwards". A {@link SignExtendNode} must treat the partial
* information correctly with respect to the extension bits and handle contradictions.
* </p>
* If {@code CONST = 1 << 4 = 0001 0000} and we assume the condition holds, we can refine a stamp
* {@code xxxx xx11} for {@code val} to {@code xxx1 xx11}. Inverting this refined stamp along an
* artificial 4->8 bit sign extension should treat the extension as {@code 1111} and produce an
* inverted stamp of {@code xx11} or, even better {@code 1x11}, because we know the MSB has to be
* one from the extension.
* </p>
* If the inversion is performed incorrectly, the inner condition could be considered as always
* false and removing it during conditional elimination.
*/
public class ConditionalEliminationStampInversionTest extends GraalCompilerTest {

public static boolean snippet(byte b) {
short s = b;
int i = s;

if ((i & (1 << 16)) == (1 << 16)) {
if (s == -5) {
return true;
}
}
return false;
}

@Test
public void test() throws InvalidInstalledCodeException {
StructuredGraph g = parseEager("snippet", AllowAssumptions.YES);

// replace the IntegerTest by an equivalent and/== pattern
ValueNode intTest = g.getNodes().filter(IntegerTestNode.class).first();
assertTrue("IntegerTestNode expected in graph.", intTest != null);

ValueNode signExtend = g.getNodes().filter(SignExtendNode.class).first();
assertTrue("SignExtendNode expected in graph.", signExtend != null);

ValueNode and = g.addOrUnique(AndNode.create(signExtend, ConstantNode.forInt(1 << 16, g), NodeView.DEFAULT));
and.inferStamp();
LogicNode intEq = g.addOrUnique(IntegerEqualsNode.create(and, ConstantNode.forInt(1 << 16, g), NodeView.DEFAULT));
intEq.inferStamp();

intTest.replaceAtUsages(intEq);

// replace the if by a fixed guard to trigger conditional elimination for the and/== pattern
ValueNode ifNode = (ValueNode) intEq.usages().first();
assertTrue("IfNode expected as first usage of IntegerEqualsNode.", ifNode != null && ifNode instanceof IfNode);

FixedGuardNode guard = g.add(new FixedGuardNode(intEq, DeoptimizationReason.ArithmeticException, DeoptimizationAction.InvalidateRecompile));
GraphUtil.killCFG(((IfNode) ifNode).trueSuccessor());
g.replaceSplitWithFixed((IfNode) ifNode, guard, ((IfNode) ifNode).falseSuccessor());

new ConditionalEliminationPhase(false).apply(g, getDefaultHighTierContext());

// the inner condition should still be alive and the following execution return true
assert (boolean) getCode(getResolvedJavaMethod("snippet"), g, true, true, getInitialOptions()).executeVarargs((byte) -5);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
/*
* Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package org.graalvm.compiler.hotspot.amd64.test;

import static org.graalvm.compiler.nodeinfo.NodeCycles.CYCLES_0;
import static org.graalvm.compiler.nodeinfo.NodeSize.SIZE_0;

import org.junit.Test;
import org.graalvm.compiler.api.directives.GraalDirectives;
import org.graalvm.compiler.core.common.type.StampFactory;
import org.graalvm.compiler.core.test.GraalCompilerTest;
import org.graalvm.compiler.graph.Node;
import org.graalvm.compiler.graph.NodeClass;
import org.graalvm.compiler.nodeinfo.InputType;
import org.graalvm.compiler.nodeinfo.NodeInfo;
import org.graalvm.compiler.nodes.FixedWithNextNode;
import org.graalvm.compiler.nodes.ValueNode;
import org.graalvm.compiler.nodes.calc.IsNullNode;
import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderConfiguration.Plugins;
import org.graalvm.compiler.nodes.graphbuilderconf.GraphBuilderContext;
import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugin;
import org.graalvm.compiler.nodes.graphbuilderconf.InvocationPlugins.Registration;
import org.graalvm.compiler.nodes.memory.ReadNode;
import org.graalvm.compiler.nodes.spi.Canonicalizable;
import org.graalvm.compiler.nodes.spi.CanonicalizerTool;
import org.graalvm.compiler.phases.common.UseTrappingNullChecksPhase;

import jdk.vm.ci.code.InstalledCode;
import jdk.vm.ci.code.InvalidInstalledCodeException;
import jdk.vm.ci.meta.ResolvedJavaMethod;

/**
* Test to ensure that late elimination of memory reads preserves necessary null check semantic with
* respect to {@link UseTrappingNullChecksPhase}.
*/
public class ReadEliminateLowTierTest extends GraalCompilerTest {
static class T {
int x;
int y;
int z;
}

public static int trappingSnippet(T t) {
if (t == null) {
GraalDirectives.deoptimizeAndInvalidate();
return -1;
}
/*
* The first read from t here will act as trapping null check for all the others. We must
* not remove this read if its used as a null check even if it does not have any usages any
* more.
*/
foldAfterTrappingNullChecks(t.x);
int result = t.y + t.z;
return result;
}

static void foldAfterTrappingNullChecks(@SuppressWarnings("unused") int i) {
}

@Override
protected Plugins getDefaultGraphBuilderPlugins() {
Plugins p = super.getDefaultGraphBuilderPlugins();
Registration r = new Registration(p.getInvocationPlugins(), ReadEliminateLowTierTest.class);
r.register(new InvocationPlugin("foldAfterTrappingNullChecks", int.class) {
@Override
public boolean apply(GraphBuilderContext b, ResolvedJavaMethod targetMethod, Receiver receiver, ValueNode arg) {
b.append(new FixedUsageUntilFinalCanon(arg));
return true;
}
});
return p;
}

/**
* Node that gets optimized away be late canonicalization.
*/
@NodeInfo(cycles = CYCLES_0, size = SIZE_0, allowedUsageTypes = {InputType.Anchor})
public static class FixedUsageUntilFinalCanon extends FixedWithNextNode implements Canonicalizable {
public static final NodeClass<FixedUsageUntilFinalCanon> TYPE = NodeClass.create(FixedUsageUntilFinalCanon.class);

@OptionalInput ValueNode object;

public FixedUsageUntilFinalCanon(ValueNode object) {
super(TYPE, StampFactory.forVoid());
this.object = object;
}

@Override
public Node canonical(CanonicalizerTool tool) {
// after trapping nulls
if (graph().getNodes().filter(IsNullNode.class).count() == 0) {
if (tool.allUsagesAvailable() && object instanceof ReadNode) {
ReadNode r = (ReadNode) object;
if (r.hasExactlyOneUsage() && r.usages().first().equals(this)) {
return null;
}
}
}
return this;
}
}

@Test
public void test() throws InvalidInstalledCodeException {
InstalledCode ic = getCode(getResolvedJavaMethod("trappingSnippet"));
assert lastCompiledGraph != null;
ic.executeVarargs(new T());
ic.executeVarargs((Object) null);
}

}
Loading
Loading