diff options
| author | 2015-12-01 16:28:28 +0000 | |
|---|---|---|
| committer | 2015-12-01 16:28:28 +0000 | |
| commit | 1cfe7fd885fc21292dfe74b554c38b07304cb10e (patch) | |
| tree | 5a809d58debfe5265bb40c2ae71f67a0532dd974 /compiler/optimizing/sharpening.cc | |
| parent | 8b3609b4daacfd6d823fe9d9052955db2202aa0f (diff) | |
| parent | c88ef3a10c474045a3476a02ae75d07ddd3230b7 (diff) | |
Merge "Revert "Don't use the compiler driver for method resolution.""
Diffstat (limited to 'compiler/optimizing/sharpening.cc')
| -rw-r--r-- | compiler/optimizing/sharpening.cc | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/compiler/optimizing/sharpening.cc b/compiler/optimizing/sharpening.cc index 5e1d1d9954..a128079cdb 100644 --- a/compiler/optimizing/sharpening.cc +++ b/compiler/optimizing/sharpening.cc @@ -49,8 +49,7 @@ void HSharpening::ProcessInvokeStaticOrDirect(HInvokeStaticOrDirect* invoke) { } // TODO: Avoid CompilerDriver. - InvokeType original_invoke_type = invoke->GetOriginalInvokeType(); - InvokeType optimized_invoke_type = original_invoke_type; + InvokeType invoke_type = invoke->GetOriginalInvokeType(); MethodReference target_method(&graph_->GetDexFile(), invoke->GetDexMethodIndex()); int vtable_idx; uintptr_t direct_code, direct_method; @@ -59,18 +58,15 @@ void HSharpening::ProcessInvokeStaticOrDirect(HInvokeStaticOrDirect* invoke) { invoke->GetDexPc(), false /* update_stats: already updated in builder */, true /* enable_devirtualization */, - &optimized_invoke_type, + &invoke_type, &target_method, &vtable_idx, &direct_code, &direct_method); - if (!success) { - // TODO: try using kDexCachePcRelative. It's always a valid method load - // kind as long as it's supported by the codegen - return; - } - invoke->SetOptimizedInvokeType(optimized_invoke_type); - invoke->SetTargetMethod(target_method); + DCHECK(success); + DCHECK_EQ(invoke_type, invoke->GetInvokeType()); + DCHECK_EQ(target_method.dex_file, invoke->GetTargetMethod().dex_file); + DCHECK_EQ(target_method.dex_method_index, invoke->GetTargetMethod().dex_method_index); HInvokeStaticOrDirect::MethodLoadKind method_load_kind; HInvokeStaticOrDirect::CodePtrLocation code_ptr_location; |