summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ian Rogers <irogers@google.com> 2013-06-13 11:15:15 -0700
committer Ian Rogers <irogers@google.com> 2013-06-13 11:15:15 -0700
commitfa7809f3da2f366317ecb0e37f39c0c7e343d567 (patch)
tree078d723436d7420fc46d68c8d28d2bf6ef11a0af
parent8afe6e0d8c4151ac74afc4ebe0dab85550821243 (diff)
Mark instructions that produce non-null object arguments as non-null.
Improve null-check elimination by marking instructions that can't produce a non-null object as non-null. Reduces the size of ThinkFree by 16kb (0.05%). Change-Id: I43148b55a4896081fe3da37a3345814b55fa9b82
-rw-r--r--src/compiler/dex/mir_dataflow.cc8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/compiler/dex/mir_dataflow.cc b/src/compiler/dex/mir_dataflow.cc
index 79eac6d14c..3b2c1a6c5e 100644
--- a/src/compiler/dex/mir_dataflow.cc
+++ b/src/compiler/dex/mir_dataflow.cc
@@ -70,7 +70,7 @@ const int MIRGraph::oat_data_flow_attributes_[kMirOpLast] = {
DF_DA | DF_REF_A,
// 0D MOVE_EXCEPTION vAA
- DF_DA | DF_REF_A,
+ DF_DA | DF_REF_A | DF_NON_NULL_DST,
// 0E RETURN_VOID
DF_NOP,
@@ -109,13 +109,13 @@ const int MIRGraph::oat_data_flow_attributes_[kMirOpLast] = {
DF_DA | DF_A_WIDE | DF_SETS_CONST,
// 1A CONST_STRING vAA, string@BBBB
- DF_DA | DF_REF_A,
+ DF_DA | DF_REF_A | DF_NON_NULL_DST,
// 1B CONST_STRING_JUMBO vAA, string@BBBBBBBB
- DF_DA | DF_REF_A,
+ DF_DA | DF_REF_A | DF_NON_NULL_DST,
// 1C CONST_CLASS vAA, type@BBBB
- DF_DA | DF_REF_A,
+ DF_DA | DF_REF_A | DF_NON_NULL_DST,
// 1D MONITOR_ENTER vAA
DF_UA | DF_NULL_CHK_0 | DF_REF_A,