diff options
| author | 2015-05-19 06:54:58 +0000 | |
|---|---|---|
| committer | 2015-05-19 06:54:59 +0000 | |
| commit | 45970a4cde2fb12e1cb1515aaf0d9cb9869c5116 (patch) | |
| tree | cb808b3cf5ea4c499124be2c042240b22856a2ef | |
| parent | be910330a25117e0c739330747f7f6806c00acaf (diff) | |
| parent | a4f5bf6ea99d6b3095a4ca261352729633bc44c5 (diff) | |
Merge "ART: Change huge-method warning in verifier"
| -rw-r--r-- | runtime/verifier/method_verifier.cc | 14 |
1 files changed, 9 insertions, 5 deletions
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<mirror::DexCache> 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(), |