Skip to content
Closed
Changes from 1 commit
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
ac5df9f
Move `StringCoding::countPositives` checks from C++ to Java
vy Jun 26, 2025
1498824
Apply review feedback
vy Jun 26, 2025
196fc5d
Add `StringCodingCountPositives` benchmark
vy Jul 4, 2025
9932dd3
Improve intrinsics in `StringCoding`
vy Jul 9, 2025
14275e5
Remove `StringCodingCountPositives`, `String{En,De}code` already cove…
vy Jul 10, 2025
b9a6adf
Fix `EUC_JP.java.template` broken due to `encodeASCII` rename
vy Jul 10, 2025
6af9864
Merge remote-tracking branch 'upstream/master' into strIntrinCheck
vy Jul 10, 2025
c331fbf
Improve wording of the `VerifyIntrinsicChecks` flag
vy Jul 15, 2025
b60ff45
Remove Markdown-styling in comments
vy Jul 15, 2025
7c042b3
Minimize the number of touched lines in `vmIntrinsics.hpp`
vy Jul 15, 2025
2672f7c
Apply review feedback (styling changes)
vy Jul 15, 2025
85f1986
Merge remote-tracking branch 'upstream/master' into strIntrinCheck
vy Jul 15, 2025
2b89e88
Improve `generate_string_range_check` changes
vy Jul 16, 2025
bcb073c
Add test verifying the effectiveness of `VerifyIntrinsicChecks`
vy Jul 16, 2025
bfc3017
Fix compiler error in `generate_string_range_check`
vy Jul 17, 2025
abc0eeb
Duplicate affected tests with `-XX:+VerifyIntrinsicChecks` variants
vy Jul 17, 2025
db1ed38
Replace casting with `as_Region()` in `generate_string_range_check`
vy Jul 17, 2025
7a6cd39
Fix out-of-bounds in `sun.nio.cs.SingleByte.Encoder::encodeArrayLoop`
vy Jul 17, 2025
8c712ff
Relax target array capacity check for intrinsic Java wrappers
vy Jul 18, 2025
4016c7a
Disable `TestVerifyIntrinsicChecks` for GraalVM
vy Jul 18, 2025
943f840
Fix `encodeISOArray` bounds checks and Javadoc
vy Jul 18, 2025
fb8f6ef
Make `StringCoding` encoding intrinsics lenient
vy Jul 21, 2025
f69374f
Merge remote-tracking branch 'upstream/master' into strIntrinCheck
vy Jul 21, 2025
86e3ed8
Remove superseded `@throws` Javadoc
vy Jul 21, 2025
025c7ef
Fix bit shifting
vy Jul 21, 2025
07cd41c
Cap destination array bounds
vy Jul 22, 2025
cb4780d
Make source array bound checks lenient too
vy Jul 22, 2025
dc5e673
Improve wording of `@param len`
vy Jul 23, 2025
1d02189
Add `@bug` tags
vy Jul 23, 2025
e70dfa3
Replace `requireNonNull` with implicit null checks to reduce bytecode…
vy Jul 25, 2025
c322f0e
Merge remote-tracking branch 'upstream/master' into strIntrinCheck
vy Jul 25, 2025
4d2a7a3
Move `->asRegion()` after `if (halt)`
vy Aug 11, 2025
9b721bb
Rename `generate_string_range_check::halt` to `halt_on_oob`
vy Aug 11, 2025
d5aabf0
Remove `@apiNote` in `encodeISOArray()` Javadoc
vy Aug 12, 2025
6235034
Document why `Preconditions` is not used
vy Aug 15, 2025
2ba4ba6
Document tests using `-XX:+VerifyIntrinsicChecks` don't check out-of-…
vy Aug 15, 2025
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
6 changes: 3 additions & 3 deletions src/hotspot/share/opto/library_call.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -961,14 +961,14 @@ void LibraryCallKit::generate_string_range_check(Node* array,
generate_limit_guard(offset, count, load_array_length(array), bailout);

if (bailout->req() > 1) {
bailout = _gvn.transform(bailout);
if (halt) {
Node* frame = _gvn.transform(new ParmNode(C->start(), TypeFunc::FramePtr));
Node* bailoutN = _gvn.transform(bailout);
Node* halt = _gvn.transform(new HaltNode(bailoutN, frame, "unexpected guard failure in intrinsic"));
Node* halt = _gvn.transform(new HaltNode(bailout, frame, "unexpected guard failure in intrinsic"));
C->root()->add_req(halt);
} else {
PreserveJVMState pjvms(this);
set_control(_gvn.transform(bailout));
set_control(bailout);
uncommon_trap(Deoptimization::Reason_intrinsic,
Deoptimization::Action_maybe_recompile);
}
Expand Down