diff options
author | Calin Juravle <calin@google.com> | 2015-02-12 15:25:22 +0000 |
---|---|---|
committer | Calin Juravle <calin@google.com> | 2015-02-19 17:07:52 +0000 |
commit | acf735c13998ad2a175f5a17e7bfce220073279d (patch) | |
tree | 94969f2387f0e6dad8c7e5712aa8187c9de2be56 /compiler/optimizing/nodes.cc | |
parent | 39109a06015c91188232e59fa9e60e0915d24cd7 (diff) | |
download | art-acf735c13998ad2a175f5a17e7bfce220073279d.tar.gz art-acf735c13998ad2a175f5a17e7bfce220073279d.tar.bz2 art-acf735c13998ad2a175f5a17e7bfce220073279d.zip |
Reference type propagation
- propagate reference types between instructions
- remove checked casts when possible
- add StackHandleScopeCollection to manage an arbitrary number of stack
handles (see comments)
Change-Id: I31200067c5e7375a5ea8e2f873c4374ebdb5ee60
Diffstat (limited to 'compiler/optimizing/nodes.cc')
-rw-r--r-- | compiler/optimizing/nodes.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/compiler/optimizing/nodes.cc b/compiler/optimizing/nodes.cc index 4a574b075..7a75d260f 100644 --- a/compiler/optimizing/nodes.cc +++ b/compiler/optimizing/nodes.cc @@ -18,6 +18,7 @@ #include "ssa_builder.h" #include "utils/growable_array.h" +#include "scoped_thread_state_change.h" namespace art { @@ -999,4 +1000,14 @@ void HGraph::InlineInto(HGraph* outer_graph, HInvoke* invoke) { invoke->GetBlock()->RemoveInstruction(invoke); } +std::ostream& operator<<(std::ostream& os, const ReferenceTypeInfo& rhs) { + ScopedObjectAccess soa(Thread::Current()); + os << "[" + << " is_top=" << rhs.IsTop() + << " type=" << (rhs.IsTop() ? "?" : PrettyClass(rhs.GetTypeHandle().Get())) + << " is_exact=" << rhs.IsExact() + << " ]"; + return os; +} + } // namespace art |