diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2015-06-02 11:25:09 +0100 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2015-06-02 11:28:28 +0100 |
commit | bd7eef17de5f3d25f411702f9f260a96455b4cf7 (patch) | |
tree | 9a8d838c11875c2d4064fc1050d6adc0d6fa4c37 | |
parent | 71f0a8a123fa27bdc857a98afebbaf0ed09dac15 (diff) | |
download | art-bd7eef17de5f3d25f411702f9f260a96455b4cf7.zip art-bd7eef17de5f3d25f411702f9f260a96455b4cf7.tar.gz art-bd7eef17de5f3d25f411702f9f260a96455b4cf7.tar.bz2 |
Fix another source of undeterministic inlining.
Needing an environment and throwing might depend in which
caller first tries to inline. HLoadClass has such logic. Therefore,
do not cache the non-inlineable flag for those cases.
Does not apply to aosp, as this code has been removed.
bug:20037935
Change-Id: I5e3d36ffb832fb3c3f3c604c79cdbf4f37c749e1
-rw-r--r-- | compiler/optimizing/inliner.cc | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/compiler/optimizing/inliner.cc b/compiler/optimizing/inliner.cc index d88424c..c090c3f 100644 --- a/compiler/optimizing/inliner.cc +++ b/compiler/optimizing/inliner.cc @@ -256,7 +256,6 @@ bool HInliner::TryBuildAndInline(Handle<mirror::ArtMethod> resolved_method, VLOG(compiler) << "Method " << PrettyMethod(method_index, caller_dex_file) << " could not be inlined because " << current->DebugName() << " can throw"; - resolved_method->SetShouldNotInline(); return false; } @@ -264,7 +263,6 @@ bool HInliner::TryBuildAndInline(Handle<mirror::ArtMethod> resolved_method, VLOG(compiler) << "Method " << PrettyMethod(method_index, caller_dex_file) << " could not be inlined because " << current->DebugName() << " needs an environment"; - resolved_method->SetShouldNotInline(); return false; } |