/// CHECK-START: int Main.$noinline$foo(int, int) GVN (after) /// CHECK: Add /// CHECK: Add /// CHECK-NOT: Add publicstaticint $noinline$foo(int x, int y) { int sum1 = $inline$add(x, y); int sum2 = $inline$add(y, x); return sum1 + sum2;
}
/// CHECK-START: int Main.$noinline$mulAndIntrinsic() GVN (before) /// CHECK: StaticFieldGet /// CHECK: StaticFieldGet /// CHECK: Mul /// CHECK: Abs /// CHECK: StaticFieldGet /// CHECK: StaticFieldGet /// CHECK: Mul /// CHECK: Add
/// CHECK-START: int Main.$noinline$mulAndIntrinsic() GVN (after) /// CHECK: StaticFieldGet /// CHECK: StaticFieldGet /// CHECK: Mul /// CHECK: Abs /// CHECK-NOT: StaticFieldGet /// CHECK-NOT: StaticFieldGet /// CHECK-NOT: Mul /// CHECK: Add
publicstaticint $noinline$mulAndIntrinsic() { // The intermediate call to abs() does not kill // the common subexpression on the multiplication. int mul1 = mX * mY; int abs = Math.abs(mul1); int mul2 = mY * mX; return abs + mul2;
}
publicstaticint $noinline$directIntrinsic(int x) { // Here, the two calls to abs() themselves can be replaced with just one. int abs1 = Math.abs(x); int abs2 = Math.abs(x); return abs1 + abs2;
}
publicstaticclass MyList { publicint[] arr;
}
// The 4 deoptimize are pairs of checking for null and array-length. The // repetition is due to the two loops. // NB This is a very degenerate example and improvements to our analysis could // allow for this entire function to be removed. /// CHECK-START: int Main.$noinline$deoptimizeArray(int[]) GVN$after_arch (before) /// CHECK: Deoptimize /// CHECK: Deoptimize /// CHECK: Deoptimize /// CHECK: Deoptimize /// CHECK-NOT: Deoptimize // Get rid of redundant deoptimizes /// CHECK-START: int Main.$noinline$deoptimizeArray(int[]) GVN$after_arch (after) /// CHECK: Deoptimize /// CHECK: Deoptimize /// CHECK-NOT: Deoptimize publicstaticint $noinline$deoptimizeArray(int[] arr) { if (arr == null) {
arr = newint[100];
} for (int i = 0; i < 10; i++) {
arr[i] = i;
} int sum = 0; for (int i = 0; i < 10; i++) {
sum += arr[i];
} return sum;
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.0 Sekunden
(vorverarbeitet am 2026-06-29)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.