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

8255246: AArch64: Implement BigInteger shiftRight and shiftLeft accelerator/intrinsic #861

Closed
wants to merge 11 commits into from

Conversation

dgbo
Copy link
Member

@dgbo dgbo commented Oct 26, 2020

BigInteger.shiftRightImplWorker and BigInteger.shiftLeftImplWorker are not intrinsified on aarch64, which have been done on x86_64.
We can implement them via USHL NEON instruction (register), which handles four integers one time at most, against just integer C2 asm-code processed.
The usage of USHL can be found at: https://developer.arm.com/documentation/dui0801/g/A64-SIMD-Vector-Instructions/USHL--vector-?lang=en

Patch passed jtreg tier1-3 tests on our aarch64 server.
Tests in test/jdk/java/math/BigInteger/* runned specially for the correctness of the implementation and passed.

We tested test/micro/org/openjdk/bench/java/math/BigIntegers.java for performance gain on Kunpeng916 and Kunpeng920.
The following performance improvements were seen with this implementation:

  • Intrinsification of BigInteger.shiftLeft: 25.52% (Kunpeng916), 37.56% (Kunpeng920)
  • Intrinsification of BigInteger.shiftRight: 46.45% (Kunpeng916), 43.32% (Kunpeng920)

The BigIntegers.java JMH micro-benchmark results:

Benchmark                      Mode  Cnt     Score    Error  Units

# Kunpeng 916, default
BigIntegers.testAdd            avgt   25    33.554 ±  0.224  ns/op
BigIntegers.testHugeToString   avgt   25   575.554 ± 40.656  ns/op
BigIntegers.testLargeToString  avgt   25   190.098 ±  0.825  ns/op
**BigIntegers.testLeftShift      avgt   25  1495.779 ± 12.365  ns/op**
BigIntegers.testMultiply       avgt   25  7551.707 ± 39.309  ns/op
**BigIntegers.testRightShift     avgt   25   605.302 ±  6.710  ns/op**
BigIntegers.testSmallToString  avgt   25   179.034 ±  0.873  ns/op

# Kunpeng 916, intrinsic:
BigIntegers.testAdd            avgt   25    33.531 ±  0.222  ns/op
BigIntegers.testHugeToString   avgt   25   578.038 ± 40.675  ns/op
BigIntegers.testLargeToString  avgt   25   188.566 ±  0.855  ns/op
**BigIntegers.testLeftShift      avgt   25  1191.651 ± 20.136  ns/op**
BigIntegers.testMultiply       avgt   25  7492.711 ±  3.702  ns/op
**BigIntegers.testRightShift     avgt   25   326.891 ±  6.033  ns/op**
BigIntegers.testSmallToString  avgt   25   178.267 ±  1.501  ns/op

# Kunpeng 920, default
BigIntegers.testAdd            avgt   25    22.790 ±  0.167  ns/op
BigIntegers.testHugeToString   avgt   25   432.428 ± 10.736  ns/op
BigIntegers.testLargeToString  avgt   25   121.899 ±  3.356  ns/op
**BigIntegers.testLeftShift      avgt   25   883.530 ± 53.714  ns/op**
BigIntegers.testMultiply       avgt   25  5918.845 ± 94.937  ns/op
**BigIntegers.testRightShift     avgt   25   329.762 ± 15.850  ns/op**
BigIntegers.testSmallToString  avgt   25   117.460 ±  3.040  ns/op

# Kunpeng 920, intrinsic
BigIntegers.testAdd            avgt   25    21.791 ±  0.085  ns/op
BigIntegers.testHugeToString   avgt   25   415.209 ± 32.170  ns/op
BigIntegers.testLargeToString  avgt   25   124.635 ±  2.157  ns/op
**BigIntegers.testLeftShift      avgt   25   551.710 ±  7.836  ns/op**
BigIntegers.testMultiply       avgt   25  5869.401 ± 54.803  ns/op
**BigIntegers.testRightShift     avgt   25   186.896 ±  6.378  ns/op**
BigIntegers.testSmallToString  avgt   25   117.543 ±  3.036  ns/op

Progress

  • Change must not contain extraneous whitespace
  • Commit message must refer to an issue
  • Change must be properly reviewed

Testing

Linux x32 Linux x64 Windows x64 macOS x64
Build ✔️ (1/1 passed) ✔️ (5/5 passed) ✔️ (2/2 passed) ✔️ (2/2 passed)
Test (tier1) ✔️ (9/9 passed) ✔️ (9/9 passed) ✔️ (9/9 passed)

Issue

  • JDK-8255246: AArch64: Implement BigInteger shiftRight and shiftLeft accelerator/intrinsic

Reviewers

Download

$ git fetch https://git.openjdk.java.net/jdk pull/861/head:pull/861
$ git checkout pull/861

@bridgekeeper
Copy link

bridgekeeper bot commented Oct 26, 2020

👋 Welcome back dongbo! A progress list of the required criteria for merging this PR into master will be added to the body of your pull request. There are additional pull request commands available for use with this pull request.

@openjdk
Copy link

openjdk bot commented Oct 26, 2020

@dgbo The following label will be automatically applied to this pull request:

  • hotspot-compiler

When this pull request is ready to be reviewed, an "RFR" email will be sent to the corresponding mailing list. If you would like to change these labels, use the /label pull request command.

@openjdk openjdk bot added hotspot-compiler hotspot-compiler-dev@openjdk.org rfr Pull request is ready for review labels Oct 26, 2020
@mlbridge
Copy link

mlbridge bot commented Oct 26, 2020

Webrevs

@mlbridge
Copy link

mlbridge bot commented Oct 26, 2020

Mailing list message from Andrew Haley on hotspot-compiler-dev:

On 26/10/2020 09:46, Dong Bo wrote:

The BigIntegers.java JMH micro-benchmark results:
Benchmark Mode Cnt Score Error Units

I don't see any performance testing here for shifts of small
BigIntegers. Can you have a look to make sure these don't regress?

Thanks,

--
Andrew Haley (he/him)
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
https://keybase.io/andrewhaley
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671

@openjdk openjdk bot added the core-libs core-libs-dev@openjdk.org label Oct 27, 2020
@dgbo
Copy link
Member Author

dgbo commented Oct 27, 2020

@theRealAph Thanks for the quick review.

Updated a version for small BigIntegers.
The less-than-four-words loop is unpacked for minor performance improvements.
Also modified code in ./test/micro/org/openjdk/bench/java/math/BigIntegers.java for small BigIntegers performance tests.
New parameter maxNumbits in the test indicates bits count of a BigInteger range in [maxNumbits - 31, maxNumbits].
Incremental modification: 7a5d76f

According to the new tests, performance regress 3%~%6 only if maxNumbits == 32.
Seems the regression is inevitably caused by the intrinsic shared code,
performance regress even if we return immediately from the stub, like:

  /* marked as cbz_ret below */
  address generate_bigIntegerLeftShift() {
    __ align(CodeEntryAlignment);
    StubCodeMark mark(this,  "StubRoutines", "bigIntegerLeftShiftWorker");
    address start = __ pc();
    Register numIter      = c_rarg4;
    __ cbz(numIter, Exit);
    __ ret(lr);
  }

The performance of cbz_ret is almost same with intrinsified 32-MaxNumbits tests.
Similar tests, returns immediately with __ ret(0), regress on a x86_64 platform too.

The BigIntegers.java JMH micro-benchmark results of small BigIntegers (~256bits):

Benchmark                        (maxNumbits)  Mode  Cnt   Score   Error  Units

# kunpeng 916, intrinsic
BigIntegers.testSmallLeftShift             32  avgt   25  51.444 ± 0.256  ns/op (cbz_ret)
BigIntegers.testSmallLeftShift             32  avgt   25  51.168 ± 0.235  ns/op
BigIntegers.testSmallLeftShift             64  avgt   25  53.566 ± 0.694  ns/op
BigIntegers.testSmallLeftShift             96  avgt   25  53.398 ± 0.651  ns/op
BigIntegers.testSmallLeftShift            128  avgt   25  55.949 ± 0.977  ns/op
BigIntegers.testSmallLeftShift            160  avgt   25  55.617 ± 0.568  ns/op
BigIntegers.testSmallLeftShift            192  avgt   25  56.285 ± 0.959  ns/op
BigIntegers.testSmallLeftShift            224  avgt   25  58.201 ± 0.965  ns/op
BigIntegers.testSmallLeftShift            256  avgt   25  58.655 ± 0.953  ns/op
BigIntegers.testSmallRightShift            32  avgt   25  56.210 ± 0.708  ns/op (cbz_ret)
BigIntegers.testSmallRightShift            32  avgt   25  56.072 ± 0.712  ns/op
BigIntegers.testSmallRightShift            64  avgt   25  56.891 ± 0.458  ns/op
BigIntegers.testSmallRightShift            96  avgt   25  56.257 ± 0.185  ns/op
BigIntegers.testSmallRightShift           128  avgt   25  56.970 ± 0.458  ns/op
BigIntegers.testSmallRightShift           160  avgt   25  58.041 ± 0.344  ns/op
BigIntegers.testSmallRightShift           192  avgt   25  58.740 ± 0.405  ns/op
BigIntegers.testSmallRightShift           224  avgt   25  60.550 ± 0.382  ns/op
BigIntegers.testSmallRightShift           256  avgt   25  65.617 ± 0.266  ns/op

# kunpeng 916, default
BigIntegers.testSmallLeftShift             32  avgt   25  49.350 ± 0.944  ns/op
BigIntegers.testSmallLeftShift             64  avgt   25  56.810 ± 0.930  ns/op
BigIntegers.testSmallLeftShift             96  avgt   25  59.472 ± 0.270  ns/op
BigIntegers.testSmallLeftShift            128  avgt   25  61.208 ± 0.252  ns/op
BigIntegers.testSmallLeftShift            160  avgt   25  63.339 ± 0.328  ns/op
BigIntegers.testSmallLeftShift            192  avgt   25  66.456 ± 0.418  ns/op
BigIntegers.testSmallLeftShift            224  avgt   25  68.437 ± 0.294  ns/op
BigIntegers.testSmallLeftShift            256  avgt   25  70.301 ± 0.306  ns/op
BigIntegers.testSmallRightShift            32  avgt   25  53.289 ± 0.272  ns/op
BigIntegers.testSmallRightShift            64  avgt   25  65.618 ± 4.097  ns/op
BigIntegers.testSmallRightShift            96  avgt   25  70.805 ± 3.695  ns/op
BigIntegers.testSmallRightShift           128  avgt   25  70.862 ± 4.205  ns/op
BigIntegers.testSmallRightShift           160  avgt   25  79.921 ± 3.272  ns/op
BigIntegers.testSmallRightShift           192  avgt   25  75.168 ± 0.224  ns/op
BigIntegers.testSmallRightShift           224  avgt   25  79.779 ± 0.609  ns/op
BigIntegers.testSmallRightShift           256  avgt   25  84.364 ± 0.540  ns/op

# kunepng 920, intrinsic
BigIntegers.testSmallLeftShift             32  avgt   25  31.404 ± 0.984  ns/op (cbz_ret)
BigIntegers.testSmallLeftShift             32  avgt   25  31.272 ± 0.558  ns/op
BigIntegers.testSmallLeftShift             64  avgt   25  33.558 ± 1.354  ns/op
BigIntegers.testSmallLeftShift             96  avgt   25  34.731 ± 1.238  ns/op
BigIntegers.testSmallLeftShift            128  avgt   25  36.082 ± 1.196  ns/op
BigIntegers.testSmallLeftShift            160  avgt   25  36.155 ± 0.932  ns/op
BigIntegers.testSmallLeftShift            192  avgt   25  38.442 ± 0.743  ns/op
BigIntegers.testSmallLeftShift            224  avgt   25  38.404 ± 1.108  ns/op
BigIntegers.testSmallLeftShift            256  avgt   25  39.381 ± 1.140  ns/op
BigIntegers.testSmallRightShift            32  avgt   25  30.821 ± 0.533  ns/op (cbz_ret)
BigIntegers.testSmallRightShift            32  avgt   25  30.662 ± 1.625  ns/op
BigIntegers.testSmallRightShift            64  avgt   25  32.686 ± 1.000  ns/op
BigIntegers.testSmallRightShift            96  avgt   25  33.922 ± 1.068  ns/op
BigIntegers.testSmallRightShift           128  avgt   25  34.997 ± 1.155  ns/op
BigIntegers.testSmallRightShift           160  avgt   25  35.763 ± 1.159  ns/op
BigIntegers.testSmallRightShift           192  avgt   25  38.180 ± 0.735  ns/op
BigIntegers.testSmallRightShift           224  avgt   25  37.985 ± 1.619  ns/op
BigIntegers.testSmallRightShift           256  avgt   25  39.957 ± 0.820  ns/op

# kunpeng 920, default
BigIntegers.testSmallLeftShift             32  avgt   25  29.524 ± 0.861  ns/op
BigIntegers.testSmallLeftShift             64  avgt   25  35.917 ± 0.467  ns/op
BigIntegers.testSmallLeftShift             96  avgt   25  36.915 ± 0.317  ns/op
BigIntegers.testSmallLeftShift            128  avgt   25  39.709 ± 0.858  ns/op
BigIntegers.testSmallLeftShift            160  avgt   25  42.796 ± 0.824  ns/op
BigIntegers.testSmallLeftShift            192  avgt   25  43.612 ± 0.319  ns/op
BigIntegers.testSmallLeftShift            224  avgt   25  45.971 ± 0.336  ns/op
BigIntegers.testSmallLeftShift            256  avgt   25  48.399 ± 0.405  ns/op
BigIntegers.testSmallRightShift            32  avgt   25  29.122 ± 0.870  ns/op
BigIntegers.testSmallRightShift            64  avgt   25  35.404 ± 1.236  ns/op
BigIntegers.testSmallRightShift            96  avgt   25  37.899 ± 1.478  ns/op
BigIntegers.testSmallRightShift           128  avgt   25  39.570 ± 0.564  ns/op
BigIntegers.testSmallRightShift           160  avgt   25  44.768 ± 1.423  ns/op
BigIntegers.testSmallRightShift           192  avgt   25  44.777 ± 1.433  ns/op
BigIntegers.testSmallRightShift           224  avgt   25  49.085 ± 0.465  ns/op
BigIntegers.testSmallRightShift           256  avgt   25  48.871 ± 1.086  ns/op

@mlbridge
Copy link

mlbridge bot commented Oct 27, 2020

Mailing list message from Andrew Haley on hotspot-compiler-dev:

On 27/10/2020 06:47, Dong Bo wrote:

Updated a version for small BigIntegers.
The less-than-four-words loop is unpacked for minor performance improvements.
Also modified code in ./test/micro/org/openjdk/bench/java/math/BigIntegers.java for small BigIntegers performance tests.
New parameter `maxNumbits` in the test indicates bits count of a BigInteger range in `[maxNumbits - 31, maxNumbits]`.
Incremental modification: https://github.com//pull/861/commits/7a5d76f51e693d441dee30b3d109d1b67b525378

According to the new tests, performance regress 3%~%6 only if `maxNumbits == 32`.
Seems the regression is inevitably caused by the intrinsic shared code,
performance regress even if we return immediately from the stub, like:
/* marked as cbz_ret below */
address generate_bigIntegerLeftShift() {
__ align(CodeEntryAlignment);
StubCodeMark mark(this, "StubRoutines", "bigIntegerLeftShiftWorker");
address start = __ pc();
Register numIter = c_rarg4;
__ cbz(numIter, Exit);
__ ret(lr);
}
The performance of `cbz_ret` is almost same with intrinsified 32-MaxNumbits tests.
Similar tests, returns immediately with `__ ret(0)`, regress on a x86_64 platform too.

The BigIntegers.java JMH micro-benchmark results of small BigIntegers (~256bits):

OK. I think there's no point pushing the small BigIntegers case any further
because the runtime is so dominated by things other than the work of the
actual shifting.

This is the profile with maxNumbits = 256, and even then the cost of doing the
shifting is only 4.9% of the total runtime. The rest is the cost of the control
logic and of allocating and zeroing an array for the result. I think we're done.

StubRoutines::bigIntegerLeftShiftWorker [0x0000ffff80421d00, 0x0000ffff80421dd0] (208 bytes)
--------------------------------------------------------------------------------
0.36% 0x0000ffff80421d00: cbz x4, Stub::bigIntegerLeftShiftWorker+204 0x0000ffff80421dcc
0.03% 0x0000ffff80421d04: add xscratch2, x1, #0x4
0x0000ffff80421d08: add x0, x0, x2, lsl #2
0.52% 0x0000ffff80421d0c: orr wscratch1, wzr, #0x20
0x0000ffff80421d10: sub wscratch1, wscratch1, w3
0x0000ffff80421d14: cmp x4, #0x4
? 0x0000ffff80421d18: b.lt Stub::bigIntegerLeftShiftWorker+124 0x0000ffff80421d7c
? 0x0000ffff80421d1c: dup v3.4s, w3
0.68% ? 0x0000ffff80421d20: dup v4.4s, wscratch1
0.03% ? 0x0000ffff80421d24: neg v4.4s, v4.4s
? ? 0x0000ffff80421d28: ld1 {v0.4s}, [x1], #16
0.42% ? ? 0x0000ffff80421d2c: ld1 {v1.4s}, [xscratch2], #16
0.03% ? ? 0x0000ffff80421d30: ushl v0.4s, v0.4s, v3.4s
0.03% ? ? 0x0000ffff80421d34: ushl v1.4s, v1.4s, v4.4s
0.42% ? ? 0x0000ffff80421d38: orr v2.16b, v0.16b, v1.16b
? ? 0x0000ffff80421d3c: st1 {v2.4s}, [x0], #16
? ? 0x0000ffff80421d40: sub x4, x4, #0x4
0.23% ? ? 0x0000ffff80421d44: cmp x4, #0x4
??? 0x0000ffff80421d48: b.lt Stub::bigIntegerLeftShiftWorker+80 0x0000ffff80421d50
??? 0x0000ffff80421d4c: b Stub::bigIntegerLeftShiftWorker+40 0x0000ffff80421d28
?? ? 0x0000ffff80421d50: cbz x4, Stub::bigIntegerLeftShiftWorker+204 0x0000ffff80421dcc
? ? 0x0000ffff80421d54: cmp x4, #0x1
? ? 0x0000ffff80421d58: b.eq Stub::bigIntegerLeftShiftWorker+180 0x0000ffff80421db4
? ? 0x0000ffff80421d5c: ld1 {v0.2s}, [x1], #8
0.71% ? ? 0x0000ffff80421d60: ld1 {v1.2s}, [xscratch2], #8
? ? 0x0000ffff80421d64: ushl v0.2s, v0.2s, v3.2s
0.94% ? ? 0x0000ffff80421d68: ushl v1.2s, v1.2s, v4.2s
? ? 0x0000ffff80421d6c: orr v2.8b, v0.8b, v1.8b
? ? 0x0000ffff80421d70: st1 {v2.2s}, [x0], #8
0.49% ? ? 0x0000ffff80421d74: sub x4, x4, #0x2
? ? 0x0000ffff80421d78: b Stub::bigIntegerLeftShiftWorker+80 0x0000ffff80421d50
? 0x0000ffff80421d7c: ldr w10, [x1],#4
0x0000ffff80421d80: ldr w11, [xscratch2],#4
0x0000ffff80421d84: lsl w10, w10, w3
0x0000ffff80421d88: lsr w11, w11, wscratch1
0x0000ffff80421d8c: orr w12, w10, w11
0x0000ffff80421d90: str w12, [x0],#4
0x0000ffff80421d94: tbz w4, #1, Stub::bigIntegerLeftShiftWorker+204 0x0000ffff80421dcc
0x0000ffff80421d98: tbz w4, #0, Stub::bigIntegerLeftShiftWorker+180 0x0000ffff80421db4
0x0000ffff80421d9c: ldr w10, [x1],#4
...................................................................................................
4.90% <total for region 3>

--
Andrew Haley (he/him)
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
https://keybase.io/andrewhaley
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671

__ orrw(r12, r10, r11);
__ strw(r12, __ post(newArr, 4));
__ sub(numIter, numIter, 1);
__ cbz(numIter, Exit);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is odd code. Why not cbnz(numIter, ShiftOneLoop) ?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My bad, it should be cbnz(numIter, ShiftOneLoop).
But it's gone now, the ShiftOneLoop is unrolled in the newest version.
Do you think we need further modifications?

@openjdk
Copy link

openjdk bot commented Oct 27, 2020

@dgbo This change now passes all automated pre-integration checks.

ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details.

After integration, the commit message for the final commit will be:

8255246: AArch64: Implement BigInteger shiftRight and shiftLeft accelerator/intrinsic

Reviewed-by: aph

You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed.

At the time when this comment was updated there had been 49 new commits pushed to the master branch:

  • 591e7e2: 8255378: [Vector API] Remove redundant vector length check after JDK-8254814 and JDK-8255210
  • 2c9dfc7: 8255234: ZGC: Bulk allocate forwarding data structures
  • b7d483c: 8255245: C1: Fix output of -XX:+PrintCFGToFile to open it with visualizer
  • 5e0a8cd: 8255488: Re-enable some problem listed tests
  • 3f8bd92: 8233556: [TESTBUG] JPopupMenu tests fail on MacOS
  • 4acf634: 8171998: javax/swing/JMenu/4692443/bug4692443.java fails on Windows
  • a804c6a: 8254871: Remove unnecessary string copy in NetworkInterface.c
  • acd0e25: 8255254: Split os::reserve_memory and os::map_memory_to_file interfaces
  • dc85a3f: 8015602: [macosx] Test javax/swing/SpringLayout/4726194/bug4726194.java fails on MacOSX
  • 1d245c6: 8252117: com/sun/jdi/BadHandshakeTest.java failed with "ConnectException: Connection refused: connect"
  • ... and 39 more: https://git.openjdk.java.net/jdk/compare/6545e19fcc02d570b27fb426939307f80ae171c6...master

As there are no conflicts, your changes will automatically be rebased on top of these commits when integrating. If you prefer to avoid this automatic rebasing, please check the documentation for the /integrate command for further details.

As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@theRealAph) but any other Committer may sponsor as well.

➡️ To flag this PR as ready for integration with the above commit message, type /integrate in a new comment. (Afterwards, your sponsor types /sponsor in a new comment to perform the integration).

@openjdk openjdk bot added the ready Pull request is ready to be integrated label Oct 27, 2020
@dgbo
Copy link
Member Author

dgbo commented Oct 28, 2020

@theRealAph Thanks for the review.

@RealFYang Could you please sponsor this? Thanks.

/integrate

@openjdk openjdk bot added the sponsor Pull request is ready to be sponsored label Oct 28, 2020
@openjdk
Copy link

openjdk bot commented Oct 28, 2020

@dgbo
Your change (at version 7a5d76f) is now ready to be sponsored by a Committer.

@RealFYang
Copy link
Member

/sponsor

@openjdk openjdk bot closed this Oct 28, 2020
@openjdk openjdk bot added integrated Pull request has been integrated and removed sponsor Pull request is ready to be sponsored labels Oct 28, 2020
@openjdk openjdk bot removed ready Pull request is ready to be integrated rfr Pull request is ready for review labels Oct 28, 2020
@openjdk
Copy link

openjdk bot commented Oct 28, 2020

@RealFYang @dgbo Since your change was applied there have been 49 commits pushed to the master branch:

  • 591e7e2: 8255378: [Vector API] Remove redundant vector length check after JDK-8254814 and JDK-8255210
  • 2c9dfc7: 8255234: ZGC: Bulk allocate forwarding data structures
  • b7d483c: 8255245: C1: Fix output of -XX:+PrintCFGToFile to open it with visualizer
  • 5e0a8cd: 8255488: Re-enable some problem listed tests
  • 3f8bd92: 8233556: [TESTBUG] JPopupMenu tests fail on MacOS
  • 4acf634: 8171998: javax/swing/JMenu/4692443/bug4692443.java fails on Windows
  • a804c6a: 8254871: Remove unnecessary string copy in NetworkInterface.c
  • acd0e25: 8255254: Split os::reserve_memory and os::map_memory_to_file interfaces
  • dc85a3f: 8015602: [macosx] Test javax/swing/SpringLayout/4726194/bug4726194.java fails on MacOSX
  • 1d245c6: 8252117: com/sun/jdi/BadHandshakeTest.java failed with "ConnectException: Connection refused: connect"
  • ... and 39 more: https://git.openjdk.java.net/jdk/compare/6545e19fcc02d570b27fb426939307f80ae171c6...master

Your commit was automatically rebased without conflicts.

Pushed as commit 6b2d11b.

💡 You may see a message that your pull request was closed with unmerged commits. This can be safely ignored.

@dgbo dgbo deleted the aarch64_biginteger_shift branch October 28, 2020 11:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core-libs core-libs-dev@openjdk.org hotspot-compiler hotspot-compiler-dev@openjdk.org integrated Pull request has been integrated
Development

Successfully merging this pull request may close these issues.

3 participants