diff options
author | Mingyao Yang <mingyao@google.com> | 2015-04-13 16:46:28 -0700 |
---|---|---|
committer | Mingyao Yang <mingyao@google.com> | 2015-04-26 10:47:01 -0700 |
commit | 206d6fd6cae5ba8c4d5f0e230111fe77b9d5c0a5 (patch) | |
tree | 0684e7dd7ca2768991a839a5ddbe78f20bf1e4bf /test/449-checker-bce/expected.txt | |
parent | 76f1413492c228bfa710e1eaa4c60370eaffbb8a (diff) | |
download | art-206d6fd6cae5ba8c4d5f0e230111fe77b9d5c0a5.tar.gz art-206d6fd6cae5ba8c4d5f0e230111fe77b9d5c0a5.tar.bz2 art-206d6fd6cae5ba8c4d5f0e230111fe77b9d5c0a5.zip |
Deoptimization-based BCE for unknown loop bounds.
For loop like:
for (int i = start; i < end; i++) {
array[i] = 1;
}
We add the following to the loop pre-header:
if (start < 0) deoptimize();
if (end > array.length) deoptimize();
Then we can eliminate bounds-check of array[i] inside the loop.
We also take care of indexing with induction variable plus some offsets,
like array[i - 1]/array[i + 1] inside the loop, and adjust the condition
for deoptimization accordingly.
Change-Id: I9e24c6b5e134ff95eff5b5605ff8f95d6546616f
Diffstat (limited to 'test/449-checker-bce/expected.txt')
-rw-r--r-- | test/449-checker-bce/expected.txt | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/test/449-checker-bce/expected.txt b/test/449-checker-bce/expected.txt index 29d6383b52..e69de29bb2 100644 --- a/test/449-checker-bce/expected.txt +++ b/test/449-checker-bce/expected.txt @@ -1 +0,0 @@ -100 |