summaryrefslogtreecommitdiff
path: root/compiler/optimizing/builder.h
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2015-05-06 14:12:42 +0100
committer Vladimir Marko <vmarko@google.com> 2015-08-19 12:23:37 +0100
commit9b688a095afbae21112df5d495487ac5231b12d0 (patch)
treee5e881d4d124803e66f1e90c1e0a0e4c90d22e13 /compiler/optimizing/builder.h
parent009c34cba875885d9540696f33255a9b355d6e15 (diff)
Optimizing: Better invoke-static/-direct dispatch.
Add framework for different types of loading ArtMethod* and code pointer retrieval. Implement invoke-static and invoke-direct calls the same way as Quick. Document the dispatch kinds in HInvokeStaticOrDirect's new enumerations MethodLoadKind and CodePtrLocation. PC-relative loads from dex cache arrays are used only for x86-64 and arm64. The implementation for other architectures will be done in separate CLs. Change-Id: I468ca4d422dbd14748e1ba6b45289f0d31734d94
Diffstat (limited to 'compiler/optimizing/builder.h')
-rw-r--r--compiler/optimizing/builder.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/optimizing/builder.h b/compiler/optimizing/builder.h
index ad5d92345b..08600c756d 100644
--- a/compiler/optimizing/builder.h
+++ b/compiler/optimizing/builder.h
@@ -266,6 +266,12 @@ class HGraphBuilder : public ValueObject {
uint32_t dex_pc,
HInvoke* invoke);
+ HInvokeStaticOrDirect::DispatchInfo ComputeDispatchInfo(bool is_string_init,
+ int32_t string_init_offset,
+ MethodReference target_method,
+ uintptr_t direct_method,
+ uintptr_t direct_code);
+
ArenaAllocator* const arena_;
// A list of the size of the dex code holding block information for