summaryrefslogtreecommitdiff
path: root/compiler/optimizing/profiling_info_builder.cc
diff options
context:
space:
mode:
author Javier Molina <javimolina@google.com> 2023-12-14 21:21:45 +0000
committer Chienyuan Huang <chienyuanhuang@google.com> 2023-12-15 06:06:25 +0000
commit9fedb9f473fd77f31285203f5baa9533b8e21ce6 (patch)
treea2d729d072b1cdf01f2293f3e0b2f52bbc6f3291 /compiler/optimizing/profiling_info_builder.cc
parentf3cbdb1a077cccce4867eee74581419414a0d3f9 (diff)
Revert "Move the construction of ProfilingInfo in the compiler."
This reverts commit d4faa43efb17e75fc99930f798103b29553a6a5e. Reason for revert: b/316397902 Test [v2/android-virtual-infra/avd/avd_boot_health_check] com.android.devicehealthchecks.SystemCheck#system_tombstone failing Change-Id: I5daee96d7c00de35fe6f403114c50dc6b6b85080
Diffstat (limited to 'compiler/optimizing/profiling_info_builder.cc')
-rw-r--r--compiler/optimizing/profiling_info_builder.cc89
1 files changed, 0 insertions, 89 deletions
diff --git a/compiler/optimizing/profiling_info_builder.cc b/compiler/optimizing/profiling_info_builder.cc
deleted file mode 100644
index 7e8cdb1454..0000000000
--- a/compiler/optimizing/profiling_info_builder.cc
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "profiling_info_builder.h"
-
-#include "art_method-inl.h"
-#include "driver/compiler_options.h"
-#include "dex/code_item_accessors-inl.h"
-#include "jit/profiling_info.h"
-#include "optimizing_compiler_stats.h"
-#include "scoped_thread_state_change-inl.h"
-
-namespace art HIDDEN {
-
-void ProfilingInfoBuilder::Run() {
- DCHECK_EQ(GetGraph()->GetProfilingInfo(), nullptr);
- // Order does not matter.
- for (HBasicBlock* block : GetGraph()->GetReversePostOrder()) {
- // No need to visit the phis.
- for (HInstructionIteratorHandleChanges inst_it(block->GetInstructions()); !inst_it.Done();
- inst_it.Advance()) {
- inst_it.Current()->Accept(this);
- }
- }
-
- ScopedObjectAccess soa(Thread::Current());
- GetGraph()->SetProfilingInfo(
- ProfilingInfo::Create(soa.Self(), GetGraph()->GetArtMethod(), inline_caches_));
-}
-
-void ProfilingInfoBuilder::HandleInvoke(HInvoke* invoke) {
- DCHECK(!invoke->GetEnvironment()->IsFromInlinedInvoke());
- if (IsInlineCacheUseful(invoke)) {
- inline_caches_.push_back(invoke->GetDexPc());
- }
-}
-
-void ProfilingInfoBuilder::VisitInvokeInterface(HInvokeInterface* invoke) {
- HandleInvoke(invoke);
-}
-
-void ProfilingInfoBuilder::VisitInvokeVirtual(HInvokeVirtual* invoke) {
- HandleInvoke(invoke);
-}
-
-bool ProfilingInfoBuilder::IsInlineCacheUseful(HInvoke* invoke) {
- DCHECK(invoke->IsInvokeVirtual() || invoke->IsInvokeInterface());
- if (invoke->IsIntrinsic()) {
- return false;
- }
- if (!invoke->GetBlock()->GetGraph()->IsCompilingBaseline()) {
- return false;
- }
- if (Runtime::Current()->IsAotCompiler()) {
- return false;
- }
- if (invoke->InputAt(0)->GetReferenceTypeInfo().IsExact()) {
- return false;
- }
- if (invoke->GetResolvedMethod() != nullptr) {
- ScopedObjectAccess soa(Thread::Current());
- if (invoke->GetResolvedMethod()->IsFinal() ||
- invoke->GetResolvedMethod()->GetDeclaringClass()->IsFinal()) {
- return false;
- }
- }
- return true;
-}
-
-InlineCache* ProfilingInfoBuilder::GetInlineCache(ProfilingInfo* info, HInvoke* instruction) {
- DCHECK(!instruction->GetEnvironment()->IsFromInlinedInvoke());
- ScopedObjectAccess soa(Thread::Current());
- return info->GetInlineCache(instruction->GetDexPc());
-}
-
-} // namespace art