diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2015-06-17 10:17:49 +0100 |
---|---|---|
committer | Mingyao Yang <mingyao@google.com> | 2015-06-19 13:31:11 -0700 |
commit | 31fa4b57132a2352630b599b4da7e69f77376dcb (patch) | |
tree | 55ab8e06188a6c6ed3358f03c4e6d0b8164e3956 /compiler/optimizing/bounds_check_elimination.cc | |
parent | bca381a12965a98e3727e93986dd0a195db500a0 (diff) | |
download | art-31fa4b57132a2352630b599b4da7e69f77376dcb.zip art-31fa4b57132a2352630b599b4da7e69f77376dcb.tar.gz art-31fa4b57132a2352630b599b4da7e69f77376dcb.tar.bz2 |
Remove bogus DCHECK in BCE.
When creating a phi for the array length when we add HDeoptimization
nodes, we might update accesses in inner loops to use that phi instead
of the array length. The BCE phase was not expecting this case.
Bug: 21034044
(cherry picked from commit 3cde6227678cf62e06bca264671d1e957456ac3d)
Change-Id: I639f4ea6f5889726142041a42736183f162c7437
Diffstat (limited to 'compiler/optimizing/bounds_check_elimination.cc')
-rw-r--r-- | compiler/optimizing/bounds_check_elimination.cc | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/compiler/optimizing/bounds_check_elimination.cc b/compiler/optimizing/bounds_check_elimination.cc index f8550c2..bd294f0 100644 --- a/compiler/optimizing/bounds_check_elimination.cc +++ b/compiler/optimizing/bounds_check_elimination.cc @@ -335,12 +335,12 @@ class ArrayAccessInsideLoopFinder : public ValueObject { continue; } - DCHECK(!length_value->IsPhi()); if (length_value->IsPhi()) { - // Outer loop shouldn't collect bounds checks inside inner - // loop because the inner loop body doen't dominate - // outer loop's back edges. However just to be on the safe side, - // if there are any such cases, we just skip over them. + // When adding deoptimizations in outer loops, we might create + // a phi for the array length, and update all uses of the + // length in the loop to that phi. Therefore, inner loops having + // bounds checks on the same array will use that phi. + // TODO: handle these cases. continue; } |