Revert "Use the object class as top in reference type propagation"

This reverts commit 3fabec7a25d151b26ba7de13615bbead0dd615a6.

Change-Id: Id8614f6b6e3e0e4c9caeb9f771e4c145d9fec64f
diff --git a/compiler/optimizing/graph_visualizer.cc b/compiler/optimizing/graph_visualizer.cc
index bc9631b..aaf7a6d 100644
--- a/compiler/optimizing/graph_visualizer.cc
+++ b/compiler/optimizing/graph_visualizer.cc
@@ -470,14 +470,19 @@
         if (instruction->IsLoadClass()) {
           ReferenceTypeInfo info = instruction->AsLoadClass()->GetLoadedClassRTI();
           ScopedObjectAccess soa(Thread::Current());
-          DCHECK(info.IsValid()) << "Invalid RTI for " << instruction->DebugName();
-          StartAttributeStream("klass") << PrettyDescriptor(info.GetTypeHandle().Get());
-          StartAttributeStream("exact") << std::boolalpha << info.IsExact() << std::noboolalpha;
+          if (info.GetTypeHandle().GetReference() != nullptr) {
+            StartAttributeStream("klass") << PrettyDescriptor(info.GetTypeHandle().Get());
+          } else {
+            StartAttributeStream("klass") << "unresolved";
+          }
         } else {
           ReferenceTypeInfo info = instruction->GetReferenceTypeInfo();
-          ScopedObjectAccess soa(Thread::Current());
-          DCHECK(info.IsValid()) << "Invalid RTI for " << instruction->DebugName();
-          StartAttributeStream("klass") << PrettyDescriptor(info.GetTypeHandle().Get());
+          if (info.IsTop()) {
+            StartAttributeStream("klass") << "java.lang.Object";
+          } else {
+            ScopedObjectAccess soa(Thread::Current());
+            StartAttributeStream("klass") << PrettyDescriptor(info.GetTypeHandle().Get());
+          }
           StartAttributeStream("exact") << std::boolalpha << info.IsExact() << std::noboolalpha;
         }
       }