Skip to content

Commit

Permalink
JIT: don't bother with GDV for an abstract class (#61191)
Browse files Browse the repository at this point in the history
Fixes #61190.
  • Loading branch information
AndyAyersMS authored Nov 5, 2021
1 parent fd07214 commit 852405c
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion src/coreclr/jit/importer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22230,6 +22230,17 @@ void Compiler::considerGuardedDevirtualization(
return;
}

uint32_t const likelyClassAttribs = info.compCompHnd->getClassAttribs(likelyClass);

if ((likelyClassAttribs & CORINFO_FLG_ABSTRACT) != 0)
{
// We may see an abstract likely class, if we have a stale profile.
// No point guessing for this.
//
JITDUMP("Not guessing for class; abstract (stale profile)\n");
return;
}

// Figure out which method will be called.
//
CORINFO_DEVIRTUALIZATION_INFO dvInfo;
Expand All @@ -22253,7 +22264,6 @@ void Compiler::considerGuardedDevirtualization(
// Add this as a potential candidate.
//
uint32_t const likelyMethodAttribs = info.compCompHnd->getMethodAttribs(likelyMethod);
uint32_t const likelyClassAttribs = info.compCompHnd->getClassAttribs(likelyClass);
addGuardedDevirtualizationCandidate(call, likelyMethod, likelyClass, likelyMethodAttribs, likelyClassAttribs,
likelihood);
}
Expand Down

0 comments on commit 852405c

Please sign in to comment.