diff options
| author | 2013-10-28 22:11:59 +0000 | |
|---|---|---|
| committer | 2013-10-30 15:34:52 -0700 | |
| commit | 0b1191cfece83f6f8d4101575a06555a2d13387a (patch) | |
| tree | 37d0cc0e8e0c991dfbdf4a32f4f7473835cc9794 /compiler/llvm/compiler_llvm.cc | |
| parent | 7195dd860e424057bd9a17d501269d9b50673f11 (diff) | |
Revert "Revert "Null check elimination improvement""
This reverts commit 31aa97cfec5ee76b2f2496464e1b6f9e11d21a29.
..and thereby brings back change 380165, which was reverted
because it was buggy.
Three problems with the original CL:
1. The author ran the pre-submit tests, but used -j24 and
failed to search the output for fail messages.
2. The new null check analysis pass uses an interative
approach to identify whether a null check is needed. It
is possible that the null-check-required state may
oscillate, and a logic error caused it to stick in the
"no check needed" state.
3. Our old nemesis Dalvik untyped constants, in which 0 values
can be used both as object reference and non-object references.
This CL conservatively treats all CONST definitions as
potential object definitions for the purposes of null
check elimination.
Change-Id: I3c1744e44318276e42989502a314585e56ac57a0
Diffstat (limited to 'compiler/llvm/compiler_llvm.cc')
0 files changed, 0 insertions, 0 deletions