summaryrefslogtreecommitdiff
path: root/compiler/optimizing/graph_visualizer.cc
diff options
context:
space:
mode:
authorCalin Juravle <calin@google.com>2015-07-08 15:57:18 +0000
committerCalin Juravle <calin@google.com>2015-07-08 15:57:18 +0000
commitbeba9302bec33d72beb582970bf23d056f62641f (patch)
tree6bc853b650f428b636f25594a6917d42cba1f86a /compiler/optimizing/graph_visualizer.cc
parent20e6071362b84a9782b633a893c29ebde458205e (diff)
Revert "Use the object class as top in reference type propagation"
failing on the build bot on some targets but not locally. needs more investigation. This reverts commit 20e6071362b84a9782b633a893c29ebde458205e. Change-Id: I6965483f569fb862f9bdb66d459b747ded54de71
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
-rw-r--r--compiler/optimizing/graph_visualizer.cc17
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;
}
}