summaryrefslogtreecommitdiff
path: root/compiler/optimizing/inliner.cc
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/optimizing/inliner.cc')
-rw-r--r--compiler/optimizing/inliner.cc9
1 files changed, 1 insertions, 8 deletions
diff --git a/compiler/optimizing/inliner.cc b/compiler/optimizing/inliner.cc
index 44af0d6b66..d679261d42 100644
--- a/compiler/optimizing/inliner.cc
+++ b/compiler/optimizing/inliner.cc
@@ -1342,13 +1342,6 @@ bool HInliner::TryDevirtualize(HInvoke* invoke_instruction,
return false;
}
- // Don't try to devirtualize intrinsics as it breaks pattern matching from later phases.
- // TODO(solanes): This `if` could be removed if we update optimizations like
- // TryReplaceStringBuilderAppend.
- if (invoke_instruction->IsIntrinsic()) {
- return false;
- }
-
// Don't devirtualize to an intrinsic invalid after the builder phase. The ArtMethod might be an
// intrinsic even when the HInvoke isn't e.g. java.lang.CharSequence.isEmpty (not an intrinsic)
// can get devirtualized into java.lang.String.isEmpty (which is an intrinsic).
@@ -2452,7 +2445,7 @@ bool HInliner::ReturnTypeMoreSpecific(HInstruction* return_replacement,
ReferenceTypeInfo invoke_rti = invoke_instruction->GetReferenceTypeInfo();
if (IsReferenceTypeRefinement(invoke_rti.GetTypeHandle().Get(),
invoke_rti.IsExact(),
- /*declared_can_be_null=*/ true,
+ invoke_instruction->CanBeNull(),
return_replacement)) {
return true;
} else if (return_replacement->IsInstanceFieldGet()) {