RFR(XS): 8030976: untaken paths should be more vigorously pruned at highest optimization level

Rickard Bäckman rickard.backman at oracle.com
Thu May 22 13:46:00 UTC 2014


Roland pointed out a problem with the Reason used. New webrev coming
shortly.

Thanks Roland.

On 05/22, Rickard Bäckman wrote:
> Hi all,
> 
> can I please have reviews for this change.
> The patch makes C2 place uncommon traps on previously untaken branches
> much more aggressively (we are simply trusting the profiling more). 
> This improves performance for a couple of different patterns.
> 
> Example:
> 
> class Test {
>   public int[] array = new int[] = { 1, 1, 2, 3, 5, 8, 13 };
> 
>   public void some_method() {
>     for (int i = 0; i < array.length; i++) {
>       if (array[i] < 255) {
>         some_call();
>       } else {
>         some_other_call();
>       }
>     }
>   }
> }
> 
> Where we previously if the else branch had never been taken rarely would
> inline the some_other_call and when array escapes we can't make
> assumptions on non-changing lengths, call killing registers, etc.
> 
> On some of the Nashorn benchmark this patch increases score by 35%,
> others don't see any change at all. No difference on SpecJBB 2005.
> More performance numbers / microbenchmark in the comments of the bug.
> 
> Webrev: http://cr.openjdk.java.net/~rbackman/8030976/
> Bug: https://bugs.openjdk.java.net/browse/JDK-8030976
> 
> Thanks
> /R


/R
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20140522/8bc3c5d9/signature.asc>


More information about the hotspot-compiler-dev mailing list