Remove ActAsNullConstant

We now properly type null constants during ssa builder so this is not
needed anymore.

Bug: 20322006
Change-Id: Ic060a52d4fa2d4f00755dd6427f822d368392d7b
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h
index 1a24cb5..4923b3c 100644
--- a/compiler/optimizing/nodes.h
+++ b/compiler/optimizing/nodes.h
@@ -1154,8 +1154,6 @@
   virtual bool CanThrow() const { return false; }
   bool HasSideEffects() const { return side_effects_.HasSideEffects(); }
 
-  virtual bool ActAsNullConstant() const { return false; }
-
   // Does not apply for all instructions, but having this at top level greatly
   // simplifies the null check elimination.
   virtual bool CanBeNull() const {
@@ -2080,8 +2078,6 @@
 
   size_t ComputeHashCode() const OVERRIDE { return 0; }
 
-  bool ActAsNullConstant() const OVERRIDE { return true; }
-
   DECLARE_INSTRUCTION(NullConstant);
 
  private:
@@ -2103,11 +2099,6 @@
 
   size_t ComputeHashCode() const OVERRIDE { return GetValue(); }
 
-  // TODO: Null is represented by the `0` constant. In most cases we replace it
-  // with a HNullConstant but we don't do it when comparing (a != null). This
-  // method is an workaround until we fix the above.
-  bool ActAsNullConstant() const OVERRIDE { return value_ == 0; }
-
   bool IsMinusOne() const OVERRIDE { return GetValue() == -1; }
   bool IsZero() const OVERRIDE { return GetValue() == 0; }
   bool IsOne() const OVERRIDE { return GetValue() == 1; }
diff --git a/compiler/optimizing/reference_type_propagation.cc b/compiler/optimizing/reference_type_propagation.cc
index de6941c..12b1c2b 100644
--- a/compiler/optimizing/reference_type_propagation.cc
+++ b/compiler/optimizing/reference_type_propagation.cc
@@ -68,11 +68,11 @@
   }
   HInstruction* input0 = ifInput->InputAt(0);
   HInstruction* input1 = ifInput->InputAt(1);
-  HInstruction* obj;
+  HInstruction* obj = nullptr;
 
-  if ((input0->GetType() == Primitive::kPrimNot) && input1->ActAsNullConstant()) {
+  if (input1->IsNullConstant()) {
     obj = input0;
-  } else if ((input1->GetType() == Primitive::kPrimNot) && input0->ActAsNullConstant()) {
+  } else if (input0->IsNullConstant()) {
     obj = input1;
   } else {
     return;