RFR (XS): 8188221 - AARCH64: Return type profiling is not performed from aarch64 interpreter

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

RFR (XS): 8188221 - AARCH64: Return type profiling is not performed from aarch64 interpreter

Dmitry Chuyko-2
Hello,

TestArrayCopyNoInitDeopt jtreg test (JDK-8072016) fails in
-XX:-TieredCompilation mode because return type is not profiled in
interpreter.
Please review the fix, it adds profiling for aarch64 similar to how it's
implemented for other cpus.

bug: https://bugs.openjdk.java.net/browse/JDK-8188221
patch: jdk10.patch attached

-Dmitry

jdk10.patch (729 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: RFR (XS): 8188221 - AARCH64: Return type profiling is not performed from aarch64 interpreter

Dmitry Chuyko-2
--- old/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp
2017-10-02 09:10:20.917960334 +0000
+++ new/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp
2017-10-02 09:10:20.293932959 +0000
@@ -414,6 +414,14 @@
    __ restore_constant_pool_cache();
    __ get_method(rmethod);

+  if (state == atos) {
+    Register obj = r0;
+    Register mdp = r1;
+    Register tmp = r2;
+    __ ldr(mdp, Address(rmethod, Method::method_data_offset()));
+    __ profile_return_type(mdp, obj, tmp);
+  }
+
    // Pop N words from the stack
    __ get_cache_and_index_at_bcp(r1, r2, 1, index_size);
    __ ldr(r1, Address(r1, ConstantPoolCache::base_offset() +
ConstantPoolCacheEntry::flags_offset()));


On 10/10/2017 05:54 PM, Dmitry Chuyko wrote:

> Hello,
>
> TestArrayCopyNoInitDeopt jtreg test (JDK-8072016) fails in
> -XX:-TieredCompilation mode because return type is not profiled in
> interpreter.
> Please review the fix, it adds profiling for aarch64 similar to how
> it's implemented for other cpus.
>
> bug: https://bugs.openjdk.java.net/browse/JDK-8188221
> patch: jdk10.patch attached
>
> -Dmitry

Reply | Threaded
Open this post in threaded view
|

RE: RFR (XS): 8188221 - AARCH64: Return type profiling is not performed from aarch64 interpreter

White, Derek
Hi Dmitry,

This looks good.

Thanks,

 - Derek

> -----Original Message-----
> From: hotspot-compiler-dev [mailto:hotspot-compiler-dev-
> [hidden email]] On Behalf Of Dmitry Chuyko
> Sent: Tuesday, October 10, 2017 11:14 AM
> To: [hidden email]
> Subject: Re: RFR (XS): 8188221 - AARCH64: Return type profiling is not
> performed from aarch64 interpreter
>
> --- old/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp
> 2017-10-02 09:10:20.917960334 +0000
> +++
> new/src/hotspot/cpu/aarch64/templateInterpreterGenerator_aarch64.cpp
> 2017-10-02 09:10:20.293932959 +0000
> @@ -414,6 +414,14 @@
>     __ restore_constant_pool_cache();
>     __ get_method(rmethod);
>
> +  if (state == atos) {
> +    Register obj = r0;
> +    Register mdp = r1;
> +    Register tmp = r2;
> +    __ ldr(mdp, Address(rmethod, Method::method_data_offset()));
> +    __ profile_return_type(mdp, obj, tmp);
> +  }
> +
>     // Pop N words from the stack
>     __ get_cache_and_index_at_bcp(r1, r2, 1, index_size);
>     __ ldr(r1, Address(r1, ConstantPoolCache::base_offset() +
> ConstantPoolCacheEntry::flags_offset()));
>
>
> On 10/10/2017 05:54 PM, Dmitry Chuyko wrote:
> > Hello,
> >
> > TestArrayCopyNoInitDeopt jtreg test (JDK-8072016) fails in
> > -XX:-TieredCompilation mode because return type is not profiled in
> > interpreter.
> > Please review the fix, it adds profiling for aarch64 similar to how
> > it's implemented for other cpus.
> >
> > bug: https://bugs.openjdk.java.net/browse/JDK-8188221
> > patch: jdk10.patch attached
> >
> > -Dmitry