From a4f5bf6ea99d6b3095a4ca261352729633bc44c5 Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Mon, 18 May 2015 20:50:12 -0700 Subject: ART: Change huge-method warning in verifier Change the logging to be included in the took-a-long-time warning, instead of being a non-descriptive standalone. This should reduce the noise. Bug: 21149450 Change-Id: Ia4493dd12f54a8452a46541f6da86530584016ea --- runtime/verifier/method_verifier.cc | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'runtime') diff --git a/runtime/verifier/method_verifier.cc b/runtime/verifier/method_verifier.cc index 475fe8be87..1b1bc54578 100644 --- a/runtime/verifier/method_verifier.cc +++ b/runtime/verifier/method_verifier.cc @@ -286,6 +286,13 @@ MethodVerifier::FailureKind MethodVerifier::VerifyClass(Thread* self, } } +static bool IsLargeMethod(const DexFile::CodeItem* const code_item) { + uint16_t registers_size = code_item->registers_size_; + uint32_t insns_size = code_item->insns_size_in_code_units_; + + return registers_size * insns_size > 4*1024*1024; +} + MethodVerifier::FailureKind MethodVerifier::VerifyMethod(Thread* self, uint32_t method_idx, const DexFile* dex_file, Handle dex_cache, @@ -329,7 +336,8 @@ MethodVerifier::FailureKind MethodVerifier::VerifyMethod(Thread* self, uint32_t uint64_t duration_ns = NanoTime() - start_ns; if (duration_ns > MsToNs(100)) { LOG(WARNING) << "Verification of " << PrettyMethod(method_idx, *dex_file) - << " took " << PrettyDuration(duration_ns); + << " took " << PrettyDuration(duration_ns) + << (IsLargeMethod(code_item) ? " (large method)" : ""); } } return result; @@ -1211,10 +1219,6 @@ bool MethodVerifier::VerifyCodeFlow() { uint16_t registers_size = code_item_->registers_size_; uint32_t insns_size = code_item_->insns_size_in_code_units_; - if (registers_size * insns_size > 4*1024*1024) { - LOG(WARNING) << "warning: method is huge (regs=" << registers_size - << " insns_size=" << insns_size << ")"; - } /* Create and initialize table holding register status */ reg_table_.Init(kTrackCompilerInterestPoints, insn_flags_.get(), -- cgit v1.2.3-59-g8ed1b