diff options
| author | 2015-07-16 16:51:30 +0100 | |
|---|---|---|
| committer | 2015-07-21 14:33:42 +0100 | |
| commit | 3fabec7a25d151b26ba7de13615bbead0dd615a6 (patch) | |
| tree | a73af9489665d5b033e961d1aafe7e0935c8af85 /compiler/optimizing/inliner.cc | |
| parent | b0d5fc0ac139da4aaa1440263416b9bde05630b0 (diff) | |
Use the object class as top in reference type propagation
This properly types all instructions, making it safe to query the type
at any time.
This also moves a few functions from class.h to class-inl.h to please
gcc linker when compiling for target.
Change-Id: I6b7ce965c10834c994b95529ab65a548515b4406
Diffstat (limited to 'compiler/optimizing/inliner.cc')
| -rw-r--r-- | compiler/optimizing/inliner.cc | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/compiler/optimizing/inliner.cc b/compiler/optimizing/inliner.cc index 3efe7c77fa..860b1990a1 100644 --- a/compiler/optimizing/inliner.cc +++ b/compiler/optimizing/inliner.cc @@ -109,10 +109,8 @@ static ArtMethod* FindVirtualOrInterfaceTarget(HInvoke* invoke, ArtMethod* resol receiver = receiver->InputAt(0); } ReferenceTypeInfo info = receiver->GetReferenceTypeInfo(); - if (info.IsTop()) { - // We have no information on the receiver. - return nullptr; - } else if (!info.IsExact()) { + DCHECK(info.IsValid()) << "Invalid RTI for " << receiver->DebugName(); + if (!info.IsExact()) { // We currently only support inlining with known receivers. // TODO: Remove this check, we should be able to inline final methods // on unknown receivers. |