publicstaticvoid $noinline$doTest(boolean testValue) {
Main m = new Main(); // LSE will find that this store can be removed, as both branches override the value with a new // one.
m.myField = 42; if (testValue) { // LSE will remove this store as well, as it's the value after the store of 42 is removed.
m.myField = 0; // This makes sure `m` gets materialized. At this point, the bug is that the partial LSE // optimization thinks the value incoming this block for `m.myField` is 42, however that // store, as well as the store to 0, have been removed.
$noinline$testMain(m);
} else {
m.myField = 3;
expectEquals(3, m.myField);
}
}
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.