summaryrefslogtreecommitdiff
path: root/compiler/optimizing/nodes.h
diff options
context:
space:
mode:
author Santiago Aboy Solanes <solanes@google.com> 2021-11-01 09:02:09 +0000
committer Treehugger Robot <treehugger-gerrit@google.com> 2021-11-01 10:45:06 +0000
commite43aa3f55fd01ce0887059b309a41b6441521e7c (patch)
tree7ba4ef9adfbb77e6baa1891c3fabd783fb03d580 /compiler/optimizing/nodes.h
parent808d8cc8114e0c5ee3116639fe9d31be5a70403a (diff)
Revert^2 "Inline across dex files for bootclaspath's methods"
This reverts commit 8cb989f1019c4fa30845bf2deb5bc996ed4e8966, so we are re-enabling commit d690f8ae8f8e2675bc52089a83ac18c749f8e6d2. Reason for revert: Failing test was fixed here https://android-review.googlesource.com/c/platform/art/+/1873567 Bug: 154012332 Test: ART tests Change-Id: If159b29583e35abcfe753f30483f83990208b1b9
Diffstat (limited to 'compiler/optimizing/nodes.h')
-rw-r--r--compiler/optimizing/nodes.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h
index 978e7c419e..16e26dc7bc 100644
--- a/compiler/optimizing/nodes.h
+++ b/compiler/optimizing/nodes.h
@@ -2288,6 +2288,9 @@ class HInstruction : public ArenaObject<kArenaAllocInstruction> {
}
virtual bool NeedsEnvironment() const { return false; }
+ virtual bool NeedsBss() const {
+ return false;
+ }
uint32_t GetDexPc() const { return dex_pc_; }
@@ -4916,6 +4919,9 @@ class HInvokeStaticOrDirect final : public HInvoke {
}
bool IsClonable() const override { return true; }
+ bool NeedsBss() const override {
+ return GetMethodLoadKind() == MethodLoadKind::kBssEntry;
+ }
void SetDispatchInfo(DispatchInfo dispatch_info) {
bool had_current_method_input = HasCurrentMethodInput();
@@ -5201,6 +5207,9 @@ class HInvokeInterface final : public HInvoke {
}
bool IsClonable() const override { return true; }
+ bool NeedsBss() const override {
+ return GetHiddenArgumentLoadKind() == MethodLoadKind::kBssEntry;
+ }
bool CanDoImplicitNullCheckOn(HInstruction* obj) const override {
// TODO: Add implicit null checks in intrinsics.
@@ -6847,6 +6856,12 @@ class HLoadClass final : public HInstruction {
bool NeedsEnvironment() const override {
return CanCallRuntime();
}
+ bool NeedsBss() const override {
+ LoadKind load_kind = GetLoadKind();
+ return load_kind == LoadKind::kBssEntry ||
+ load_kind == LoadKind::kBssEntryPublic ||
+ load_kind == LoadKind::kBssEntryPackage;
+ }
void SetMustGenerateClinitCheck(bool generate_clinit_check) {
SetPackedFlag<kFlagGenerateClInitCheck>(generate_clinit_check);
@@ -7044,6 +7059,9 @@ class HLoadString final : public HInstruction {
}
bool IsClonable() const override { return true; }
+ bool NeedsBss() const override {
+ return GetLoadKind() == LoadKind::kBssEntry;
+ }
void SetLoadKind(LoadKind load_kind);