I asked someone to take a look at this and it seems that the problem is
that a[less++] requires introduction of a temporary to store the
pre-incremented index value which in turn increases register pressure
and can lead to a register spill. This seems to not only be architecture
dependent but e
The ironic thing is that these operators were originally introduced in the C
language, at least according to well-known folklore, as an optimization -
taking advantage of inc/dec instructions from the PDP arch, in the old times
when (I suppose) compilers wouldn't do even basic strength-reduction
op
Changeset: 425960cef714
Author:darcy
Date: 2010-07-06 18:58 -0700
URL: http://hg.openjdk.java.net/jdk7/tl/jdk/rev/425960cef714
6963723: Project Coin: Retrofit more JDK classes for ARM
Reviewed-by: alanb, malenkov, prr, amenkov
! src/share/classes/java/beans/XMLDecoder.java
! src/sh
I actually looked into this in some detail and the reason for the difference in
C1 is two fold. First the state of the JVM at array load is slightly different
for a[i++] vs. a[i], i++. In the first case the top state has a copy of the
original i but the local for i has i+1. In the second ther