diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2015-03-25 10:08:51 +0000 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2015-03-25 17:13:54 +0000 |
commit | 9437b78780f9e6ffa5797ebe82de8e8d7f3a5ed6 (patch) | |
tree | d99027ae9295f162865c01f9a8795ac8cda09b84 /compiler/optimizing/nodes.h | |
parent | 11e99b19f48576f1bb6d0993635b34b6e09c9832 (diff) | |
download | art-9437b78780f9e6ffa5797ebe82de8e8d7f3a5ed6.tar.gz art-9437b78780f9e6ffa5797ebe82de8e8d7f3a5ed6.tar.bz2 art-9437b78780f9e6ffa5797ebe82de8e8d7f3a5ed6.zip |
Revert "Revert "Inline across dex files.""
This reverts commit 6a816cf624ba56bf2872916d7b65b18fd9a411ef.
Change-Id: I36cb524108786dd7996f2aea0443675be1f1b859
Diffstat (limited to 'compiler/optimizing/nodes.h')
-rw-r--r-- | compiler/optimizing/nodes.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h index db7873b14e..a38ee45eec 100644 --- a/compiler/optimizing/nodes.h +++ b/compiler/optimizing/nodes.h @@ -1220,6 +1220,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; @@ -2114,6 +2116,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); @@ -2996,6 +2999,8 @@ class HLoadClass : public HExpression<0> { return loaded_class_rti_.IsExact(); } + bool NeedsDexCache() const OVERRIDE { return !is_referrers_class_; } + DECLARE_INSTRUCTION(LoadClass); private: @@ -3031,6 +3036,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); |