diff options
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
| -rw-r--r-- | compiler/optimizing/graph_visualizer.cc | 17 | 
1 files changed, 11 insertions, 6 deletions
| diff --git a/compiler/optimizing/graph_visualizer.cc b/compiler/optimizing/graph_visualizer.cc index 1411f6eb22..c41574c93c 100644 --- a/compiler/optimizing/graph_visualizer.cc +++ b/compiler/optimizing/graph_visualizer.cc @@ -461,14 +461,19 @@ class HGraphVisualizerPrinter : public HGraphVisitor {          if (instruction->IsLoadClass()) {            ReferenceTypeInfo info = instruction->AsLoadClass()->GetLoadedClassRTI();            ScopedObjectAccess soa(Thread::Current()); -          DCHECK(info.IsValid()) << "Invalid RTI for " << instruction->DebugName(); -          StartAttributeStream("klass") << PrettyClass(info.GetTypeHandle().Get()); -          StartAttributeStream("exact") << std::boolalpha << info.IsExact() << std::noboolalpha; +          if (info.GetTypeHandle().GetReference() != nullptr) { +            StartAttributeStream("klass") << PrettyClass(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") << PrettyClass(info.GetTypeHandle().Get()); +          if (info.IsTop()) { +            StartAttributeStream("klass") << "java.lang.Object"; +          } else { +            ScopedObjectAccess soa(Thread::Current()); +            StartAttributeStream("klass") << PrettyClass(info.GetTypeHandle().Get()); +          }            StartAttributeStream("exact") << std::boolalpha << info.IsExact() << std::noboolalpha;          }        } |