summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing/nodes.h
diff options
context:
space:
mode:
authorNicolas Geoffray <ngeoffray@google.com>2015-03-23 17:52:58 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2015-03-23 17:52:59 +0000
commitd24ba2c44c76a2b2dd13aafe8f7981c15be31a98 (patch)
tree0e1d0813c1d8d1c7239a900c1653296975713df0 /compiler/optimizing/nodes.h
parent90d480c26f7524f35323a11d6ba2880ff3db789a (diff)
parent7e4c3508e4f5512650b63c41f7872a749e99aee9 (diff)
downloadandroid_art-d24ba2c44c76a2b2dd13aafe8f7981c15be31a98.tar.gz
android_art-d24ba2c44c76a2b2dd13aafe8f7981c15be31a98.tar.bz2
android_art-d24ba2c44c76a2b2dd13aafe8f7981c15be31a98.zip
Merge "Inline across dex files."
Diffstat (limited to 'compiler/optimizing/nodes.h')
-rw-r--r--compiler/optimizing/nodes.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h
index a35fa1d8c3..07ff8ba010 100644
--- a/compiler/optimizing/nodes.h
+++ b/compiler/optimizing/nodes.h
@@ -1200,6 +1200,8 @@ class HInstruction : public ArenaObject<kArenaAllocMisc> {
return NeedsEnvironment() || IsLoadClass() || IsLoadString();
}
+ virtual bool NeedsDexCache() const { return false; }
+
protected:
virtual const HUserRecord<HInstruction*> InputRecordAt(size_t i) const = 0;
virtual void SetRawInputRecordAt(size_t index, const HUserRecord<HInstruction*>& input) = 0;
@@ -2090,6 +2092,7 @@ class HInvokeStaticOrDirect : public HInvoke {
InvokeType GetInvokeType() const { return invoke_type_; }
bool IsRecursive() const { return is_recursive_; }
+ bool NeedsDexCache() const OVERRIDE { return !IsRecursive(); }
DECLARE_INSTRUCTION(InvokeStaticOrDirect);
@@ -2972,6 +2975,8 @@ class HLoadClass : public HExpression<0> {
return loaded_class_rti_.IsExact();
}
+ bool NeedsDexCache() const OVERRIDE { return !is_referrers_class_; }
+
DECLARE_INSTRUCTION(LoadClass);
private:
@@ -3007,6 +3012,7 @@ class HLoadString : public HExpression<0> {
// TODO: Can we deopt or debug when we resolve a string?
bool NeedsEnvironment() const OVERRIDE { return false; }
+ bool NeedsDexCache() const OVERRIDE { return true; }
DECLARE_INSTRUCTION(LoadString);