diff options
Diffstat (limited to 'compiler/optimizing/inliner.cc')
| -rw-r--r-- | compiler/optimizing/inliner.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/compiler/optimizing/inliner.cc b/compiler/optimizing/inliner.cc index 51fef7c9cb..9b91b53813 100644 --- a/compiler/optimizing/inliner.cc +++ b/compiler/optimizing/inliner.cc @@ -392,8 +392,8 @@ bool HInliner::TryInlinePolymorphicCall(HInvoke* invoke_instruction, << invoke_instruction->DebugName(); // This optimization only works under JIT for now. DCHECK(Runtime::Current()->UseJit()); - if (graph_->GetInstructionSet() == kMips || graph_->GetInstructionSet() == kMips64) { - // TODO: Support HClassTableGet for mips and mips64. + if (graph_->GetInstructionSet() == kMips64) { + // TODO: Support HClassTableGet for mips64. return false; } ClassLinker* class_linker = caller_compilation_unit_.GetClassLinker(); @@ -669,7 +669,9 @@ HInstanceFieldGet* HInliner::CreateInstanceFieldGet(ArtMethod* resolved_method, resolved_field->GetDeclaringClass()->GetDexClassDefIndex(), *resolved_method->GetDexFile(), dex_cache, - kNoDexPc); + // Read barrier generates a runtime call in slow path and we need a valid + // dex pc for the associated stack map. 0 is bogus but valid. Bug: 26854537. + /* dex_pc */ 0); if (iget->GetType() == Primitive::kPrimNot) { ReferenceTypePropagation rtp(graph_, handles_); rtp.Visit(iget); @@ -696,7 +698,9 @@ HInstanceFieldSet* HInliner::CreateInstanceFieldSet(ArtMethod* resolved_method, resolved_field->GetDeclaringClass()->GetDexClassDefIndex(), *resolved_method->GetDexFile(), dex_cache, - kNoDexPc); + // Read barrier generates a runtime call in slow path and we need a valid + // dex pc for the associated stack map. 0 is bogus but valid. Bug: 26854537. + /* dex_pc */ 0); return iput; } bool HInliner::TryBuildAndInline(ArtMethod* resolved_method, |