[aarch64-port-dev ] Summary of recent jdk7 updates pulled from upstream jdk8

Andrew Dinn adinn at redhat.com
Wed Nov 26 11:07:27 UTC 2014


I have recently been pulling into the icedtea7-forest-aarch64 tree all
applicable upstream changes from jdk8 added since the backport began.
That process is now complete (modulo a few exceptions detailed below)
and jdk7 is up to date with regard to any outstanding bug fixes and
performance fixes.

The attached report summarises all relevant change sets stating whether
or not they were backported with notes detailing any reason for not
backporting or any modifications required (change set notifications
corresponding to each backported change or group of changes have already
been postedto the aarch64-port-dev list).

The only significant omitted change sets are all performance related:

  7208 0bddcfcf9488 AArch64: try to align metaspace on a 4G boundary.
  jdk7 has no metaspace

  7211 1a507fdf6de6 Add encode_iso_array intrinsic
  jdk7 shared code does not support this operation

  7816 4ff9e02880b6 C2: use store release instructions for all volatile
stores.  Remove leading and trailing barriers around volatile stores.
  jdk7 is sticking with separate barrier insns for now


  7820 bd2ddb52a7a1 Add support for SHA intrinsics
  jdk7 shared code does not support SHA intrinsics

n.b. 7816 has merely been postponed until the related JDK8/9 code
changes stabilise.

n.b.b. it might be worth considering backporting the shared changes
needed for 7820 but we need to consider the effect on the x86 code base.

I still need to do more thorough testing of the current tree on real
hardware. After that I plan to pull down all changes applied to the
icedtea7-forest repo since the backport started and ensure that both
AArch64 and x86 builds still work correctly. So, we need at least to try
the TCK, JTReg and SPecJVM for both builds as well as some more
high-stress applications (netbeans?, Radar Gun?, Elastic Search?)

At that point we have a choice. Either we retain the AArch64 code in its
own icedtea7-forest-aarch64 forest or we push the changes back up into
icedtea7-forest. I think we should do the latter. Firstly, it means that
any forked maintenance release of icedtea7-forest will automatically
fork a maintenance version of the aarch64 code. Secondly, it would allow
us to continue using the icedtea7-forest-aarch64 forest as a staging
repo where we can test changes backported from JDK8/9. Any thoughts?

regards,


Andrew Dinn
-----------

-------------- next part --------------
------------------------------------------------------------------------

7195 c5b8254a0fe2 enevill       [cosmetic]
Fix format error

[not applied]
!!! does not apply as p2i is not used in jdk7

------------------------------------------------------------------------

7196 135fb0fc4123 enevill       [perf]
Add support for AES Intrinsics

[applied]
included changes from 7197, 7199 and 7200

------------------------------------------------------------------------

7197 c4af536cc45c enevill       [perf]
Refactor SIMD instructions using INSN macros

[applied]
included with 7196

------------------------------------------------------------------------

7198 a6873b738433 enevill       [perf]-- fixes error in previous
Fix assertion failure in DeoptimizeAllTest

------------------------------------------------------------------------

7199 e2941a6acc55 aph           [perf]
Remove "v_" prefixes from all SIMD instructions

[applied]
included with 7196

------------------------------------------------------------------------

7200 b5402ba4ef01 aph           [perf]
Reorganize SIMD instructions.

[applied]
included with 7196

------------------------------------------------------------------------

7202 4020f25a52c2 aph           [cosmetic]
Delete dead code.

[applied]
cosmetic but did it anyway for clarity/safety -- including file
re-add(s) below at 7209

------------------------------------------------------------------------

7203 5e238903a875 aph           [bugfix]
Define uabs().  Use it everywhere an absolute value is wanted.

[applied]

------------------------------------------------------------------------

7204 5b248d10f0ae aph           [perf]
Use TLS for ThreadLocalStorage::thread()

[applied]

------------------------------------------------------------------------

7205 598a80134374 aph           [cosmetic] reverts error in 7202
Re-add this file

[applied]
merged this in with the original delete

------------------------------------------------------------------------

7206 7721c164704a enevill       [perf]
Add char_array_equals intrinsic

[applied]

------------------------------------------------------------------------

7207 08a7c21eaa48 aph           [bugfix]
Miscellaneous bug fixes. Implement VtableStub::pd_code_size_limit. Fix CountCompiledCalls. Implement MacroAssembler::delayed_value_impl. Fix MacroAssembler::incrementw and MacroAssembler::increment. Fix DebugVtables. Fix VtableStub::pd_code_size_limit.

[applied]

------------------------------------------------------------------------

7208 0bddcfcf9488 aph           [perf]
AArch64: try to align metaspace on a 4G boundary.

[not applied]
jdk7 has no metaspace

------------------------------------------------------------------------

7209 350b0bd9cf57 aph           [cosmetic] reverts error in 7202 (again)
Re-add file

[applied]
done as part of 7202

------------------------------------------------------------------------

7211 1a507fdf6de6 enevill       [perf]
Add encode_iso_array intrinsic

[not applied]
jdk7 shared code does not support this operation

------------------------------------------------------------------------

7212 2dfe9abe27fe enevill       [perf] fixes error in previous
Get builtin sim image working again

[not applied]
as previous was not applied

------------------------------------------------------------------------

7213 b319f337ea31 enevill       [perf]
Add support for String.indexOf intrinsic

[applied]

------------------------------------------------------------------------

7214 8ca3a150d97d aph           [bugfix]
Unwind native AArch64 frames.

[applied]

------------------------------------------------------------------------

7215 f5e4bc9d2b26 aph           [bugfix]
Add frame anchor fences.

[applied]
this actually needed correcting and the correction pushed up to jdk8/9

------------------------------------------------------------------------

7216 13b0e050a417 aph           [perf]
A more efficient sequence for C1_MacroAssembler::float_cmp.

[applied]

------------------------------------------------------------------------

7217 72b78cf4cd32 aph           [bugfix]
Add CNEG and CNEGW to macro assembler.

[applied]
original fix also corrected a use of negsw in aarch64.ad to negw

------------------------------------------------------------------------

7218 4aa306297daf enevill       [bugfix]
Dont use a release store when storing an OOP in a non-volatile field.

[not applied]
it was backed out of jdk8 by 7546

------------------------------------------------------------------------

7219 a844cc39d7c2 aph           [bugfix] is it appropriate???
Various concurrency fixes. Invalidate the whole of a compiledIC stub. Add membars to interpreter in branches and ret instructions. Atomic::xchg must be a full barrier.

[applied]
Note, however, that in jdk7 compiledIC.cpp is shared not aarch64
specific so the changes in this file have been omitted. This should
not be an issue as these changes do not apply to the jdk7 code. they
only concern immediate loads and jdk7 only uses cpool loads.
??? verify this claim???

------------------------------------------------------------------------

7220 1e240278cb15 aph           [bugfix]
Add missing instruction synchronization barriers and cache flushes.

[applied]

------------------------------------------------------------------------

7544 7f4c970a6b0c aph           [bugfix]
Fix thinko in Atomic::xchg_ptr.

[applied]

------------------------------------------------------------------------

7545 bdd6cf8f4f10 aph           [perf]
C2: Use explicit barriers instead of store-release.

[not applied]
this was backed out by 7816 and does not apply to jdk7 anyway

------------------------------------------------------------------------

7546 b5dc2da31ba5 aph           [bugfix]
Backout 7167:6298eeefbb7b

[not applied]
despite what it says in the check-in message actually backs out 7218
from jdk8 so not applied

------------------------------------------------------------------------

7548 a6df78e590bb aph           [bugfix]
array load must only read 32 bits

[already applied]
this was found and fixed first in jdk7

------------------------------------------------------------------------

7549 05c84f4cec3e enevill       [bugfix] appears to be backed out by 7553
Work around problem with gcc 4.8.x

[not applied]
as it was backed out by 7553

------------------------------------------------------------------------

7550 9200b9e93039 aph           [bugfix]
Use os::malloc to allocate the register map.

[applied]

------------------------------------------------------------------------

7551 07ecc743c580 aph           [bugfix]
C1: Correct types for double-double stack move.

[already applied]
this was found and fixed first in jdk7

------------------------------------------------------------------------

7553 3fd0a587111e enevill       [bugfix]
Backout fix for gcc 4.8.3

[not applied]
as 7549 was not applied

------------------------------------------------------------------------

7554 68cf8e406ce5 enevill       [cosmetic] 
Fix failing TestStable tests

------------------------------------------------------------------------

7555 b1e1dda2c069 enevill       [perf]
Add support for fast accessors and java.lang.ref.Reference.get in
template interpreter

[not applied]
as it was backed out of jdk8 by 7556

------------------------------------------------------------------------

7556 b2bf0d45c617 enevill       [perf]
Backed out changeset b1e1dda2c069

[not applied]
as 7555 was not applied

------------------------------------------------------------------------

7703 3ac6832f7901 enevilll       [cosmetic]
Replace CmpL3 with version from jdk9 tree

[applied]
as part of adding support for pipeline scheduling 7704

------------------------------------------------------------------------

7704 788f964d727f enevill       [perf]
Add support for pipeline scheduling

[applied]
incorporated changes from 7703 and 7812

------------------------------------------------------------------------

7812 41d7963ab384 enevill       [perf] fixes bug in previous!
Fix a few pipeline scheduling problems shown by overnight tests

[applied]
as part of adding support for pipeline scheduling 7704

------------------------------------------------------------------------

7813 8fdbd65711c6 aph           [bugfix]
Add some memory barriers for object creation and runtime calls

[applied]

------------------------------------------------------------------------

7814 58cfaeeb1c86 aph           [bugfix] corrected by 7818
Call ICache::invalidate_range() from Relocation::pd_set_data_value().

[applied]
included changes from patch 7818 in one commit

------------------------------------------------------------------------

7815 cb0a994c0747 aph           [cosmetic]
Let's have a little bit less of that, now.

[not applied!]

------------------------------------------------------------------------

7816 4ff9e02880b6 aph           [perf]
C2: use store release instructions for all volatile stores.  Remove leading and traililng barriers around volatile stores.

[not yet applied]

jdk7 is still using separate memory barriers to implement volatile
loads/stores. that's because previous implementations relied on
is_volatile() -- which doesn't exist in JDK7. however, since this
patch now relies on is_unordered() -- which does exist in JDK7 -- we
can switch to using load acqurie and store release. Even so,
backporting this patch has been postponed until the JDK9/8 versions
become stable.

------------------------------------------------------------------------

7818 dba43b2d5ad2 aph           [bugfix] corrects by 7814
Fix bugs found in the review of 58cfaeeb1c86

[applied]
combined with patch 7814

------------------------------------------------------------------------

7819 f0aa6a97d4e2 enevill       [bugfix]
Tidy up allocation prefetch

[applied]

------------------------------------------------------------------------

7820 bd2ddb52a7a1 ednevill      [perf]
Add support for SHA intrinsics

[not applied]
jdk7 shared code does not support SHA intrinsics

------------------------------------------------------------------------

7821 6fb37d6acb12 ednevill      [perf] bugfix for 7820
Tidy up use of BUILTIN_SIM in vm_version_aarch64
goes with 7820

------------------------------------------------------------------------


More information about the aarch64-port-dev mailing list