Fix and rewrite local value numbering.

Fix memory versioning to take aliasing and method calls
into account. Use more instructions for the null check
elimination. Return the local value name of the register
defined by the instruction if applicable.

Change-Id: I4560bc680ae1ad553a7a00fa092c937e3da9fbbe
diff --git a/compiler/dex/mir_graph.h b/compiler/dex/mir_graph.h
index ea0289b..df48f7e 100644
--- a/compiler/dex/mir_graph.h
+++ b/compiler/dex/mir_graph.h
@@ -939,6 +939,8 @@
   size_t max_available_special_compiler_temps_;
   GrowableArray<IFieldAnnotation> ifield_annotations_;
   GrowableArray<SFieldAnnotation> sfield_annotations_;
+
+  friend class LocalValueNumberingTest;
 };
 
 }  // namespace art