summaryrefslogtreecommitdiff
path: root/runtime/cha.h
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/cha.h')
-rw-r--r--runtime/cha.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/runtime/cha.h b/runtime/cha.h
index 99c49d2bca..81458db601 100644
--- a/runtime/cha.h
+++ b/runtime/cha.h
@@ -17,7 +17,6 @@
#ifndef ART_RUNTIME_CHA_H_
#define ART_RUNTIME_CHA_H_
-#include "art_method.h"
#include "base/enums.h"
#include "base/mutex.h"
#include "handle.h"
@@ -28,6 +27,8 @@
namespace art {
+class ArtMethod;
+
/**
* Class Hierarchy Analysis (CHA) tries to devirtualize virtual calls into
* direct calls based on the info generated by analyzing class hierarchies.
@@ -94,12 +95,11 @@ class ClassHierarchyAnalysis {
OatQuickMethodHeader* dependent_header) REQUIRES(Locks::cha_lock_);
// Return compiled code that assumes that `method` has single-implementation.
- std::vector<MethodAndMethodHeaderPair>* GetDependents(ArtMethod* method)
- REQUIRES(Locks::cha_lock_);
+ const ListOfDependentPairs& GetDependents(ArtMethod* method) REQUIRES(Locks::cha_lock_);
// Remove dependency tracking for compiled code that assumes that
// `method` has single-implementation.
- void RemoveDependencyFor(ArtMethod* method) REQUIRES(Locks::cha_lock_);
+ void RemoveAllDependenciesFor(ArtMethod* method) REQUIRES(Locks::cha_lock_);
// Remove from cha_dependency_map_ all entries that contain OatQuickMethodHeader from
// the given `method_headers` set.
@@ -158,7 +158,7 @@ class ClassHierarchyAnalysis {
// A map that maps a method to a set of compiled code that assumes that method has a
// single implementation, which is used to do CHA-based devirtualization.
- std::unordered_map<ArtMethod*, ListOfDependentPairs*> cha_dependency_map_
+ std::unordered_map<ArtMethod*, ListOfDependentPairs> cha_dependency_map_
GUARDED_BY(Locks::cha_lock_);
DISALLOW_COPY_AND_ASSIGN(ClassHierarchyAnalysis);