diff options
author | 2021-11-01 09:02:09 +0000 | |
---|---|---|
committer | 2021-11-01 10:45:06 +0000 | |
commit | e43aa3f55fd01ce0887059b309a41b6441521e7c (patch) | |
tree | 7ba4ef9adfbb77e6baa1891c3fabd783fb03d580 /compiler/optimizing/nodes.h | |
parent | 808d8cc8114e0c5ee3116639fe9d31be5a70403a (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.h | 18 |
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); |