summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Geoffray <ngeoffray@google.com>2015-06-02 11:25:09 +0100
committerNicolas Geoffray <ngeoffray@google.com>2015-06-02 11:28:28 +0100
commitbd7eef17de5f3d25f411702f9f260a96455b4cf7 (patch)
tree9a8d838c11875c2d4064fc1050d6adc0d6fa4c37
parent71f0a8a123fa27bdc857a98afebbaf0ed09dac15 (diff)
downloadart-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.cc2
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;
}