summaryrefslogtreecommitdiffstats
path: root/compiler/optimizing
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 /compiler/optimizing
parent71f0a8a123fa27bdc857a98afebbaf0ed09dac15 (diff)
downloadart-bd7eef17de5f3d25f411702f9f260a96455b4cf7.tar.gz
art-bd7eef17de5f3d25f411702f9f260a96455b4cf7.tar.bz2
art-bd7eef17de5f3d25f411702f9f260a96455b4cf7.zip
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
Diffstat (limited to 'compiler/optimizing')
-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 d88424cb5e..c090c3fd5e 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;
}