Fixed
Status Update
Comments
ns...@gmail.com <ns...@gmail.com>
am...@google.com <am...@google.com>
bu...@google.com <bu...@google.com>
bd...@google.com <bd...@google.com> #3
Tracking with internal issue 36949180
aj...@google.com <aj...@google.com> #4
Excellent test case. Thanks!
Fix pending.
Fix pending.
Description
public class Test {
public static final int N = 100;
public static long instanceCount=248L;
public static int iFld=-18020;
public static void main(String[] strArr) {
long lArr[]=new long[N];
float f=-1.362F;
int i=-20817, i1=-14, i2=0, i3=45502, iArr[][]=new int[N][N];
for (i = 1; i < 2; i++) {
do {
f += 1.0;
i1 -= iArr[i][i + 1];
} while (++i2 < i);
iArr[i][i + 1] -= -47;
}
System.out.println("DBG3");
System.out.println("i i1 f = " + i + "," + i1 + "," + f);
System.out.println("i2 by d = " + i2);
}
}
If I disable BCE as shown below:
diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc
index 3eb7274..c5a076e 100644
--- a/compiler/optimizing/optimizing_compiler.cc
+++ b/compiler/optimizing/optimizing_compiler.cc
@@ -556,7 +556,6 @@ static void RunOptimizations(HGraph* graph,
gvn,
licm,
induction,
- bce,
fold3, // evaluates code generated by dynamic bce
simplify2,
lse,
then the problem is gone
To reproduce:
1. download latest AOSP
2. build aosp_arm
3. launch emulator
4. upload attached file classes.dex
5. run command adb shell "cd /data; dalvikvm -cp classes.dex Test"