JIT baseline: don't update inline caches for intrinsics.
We already know the target.
Bug: 119800099
Test: test.py --baseline
Change-Id: I14cdafe233fec83a1f69e307326858c591309c34
diff --git a/compiler/optimizing/code_generator_arm_vixl.cc b/compiler/optimizing/code_generator_arm_vixl.cc
index 68e2dfa..9100c6c 100644
--- a/compiler/optimizing/code_generator_arm_vixl.cc
+++ b/compiler/optimizing/code_generator_arm_vixl.cc
@@ -3301,7 +3301,11 @@
void CodeGeneratorARMVIXL::MaybeGenerateInlineCacheCheck(HInstruction* instruction,
vixl32::Register klass) {
DCHECK_EQ(r0.GetCode(), klass.GetCode());
- if (GetCompilerOptions().IsBaseline() && !Runtime::Current()->IsAotCompiler()) {
+ // We know the destination of an intrinsic, so no need to record inline
+ // caches.
+ if (!instruction->GetLocations()->Intrinsified() &&
+ GetCompilerOptions().IsBaseline() &&
+ !Runtime::Current()->IsAotCompiler()) {
DCHECK(!instruction->GetEnvironment()->IsFromInlinedInvoke());
ScopedObjectAccess soa(Thread::Current());
ProfilingInfo* info = GetGraph()->GetArtMethod()->GetProfilingInfo(kRuntimePointerSize);