diff options
author | 2017-02-03 10:43:13 +0000 | |
---|---|---|
committer | 2017-02-06 08:26:48 +0000 | |
commit | fbdfa6d7485534eedbd3fb32cf572529ebddb63c (patch) | |
tree | 4835ed17e31443c3e220a2eaff8d88c6c16b9cd0 /compiler/optimizing/inliner.cc | |
parent | 8781fe65fe41d971173bb2d05afe0dc00b5c08ce (diff) |
Revert "Revert "Inline across dex files for JIT.""
bug:30933338
This reverts commit d16da8bd8106452eea82408748dc6b3fd64bcb80.
Change-Id: I6a30354d6d00442cb1a542af063c7769865e369d
Diffstat (limited to 'compiler/optimizing/inliner.cc')
-rw-r--r-- | compiler/optimizing/inliner.cc | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/compiler/optimizing/inliner.cc b/compiler/optimizing/inliner.cc index 7772e8f973..5ef9c4cd78 100644 --- a/compiler/optimizing/inliner.cc +++ b/compiler/optimizing/inliner.cc @@ -1416,10 +1416,13 @@ bool HInliner::TryBuildAndInlineHelper(HInvoke* invoke_instruction, return false; } - if (!same_dex_file && current->NeedsEnvironment()) { + if (current->NeedsEnvironment() && + !CanEncodeInlinedMethodInStackMap(*caller_compilation_unit_.GetDexFile(), + resolved_method)) { VLOG(compiler) << "Method " << callee_dex_file.PrettyMethod(method_index) << " could not be inlined because " << current->DebugName() - << " needs an environment and is in a different dex file"; + << " needs an environment, is in a different dex file" + << ", and cannot be encoded in the stack maps."; return false; } |