Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.

Simple devirtualization #9230

Merged
merged 2 commits into from
Mar 2, 2017

Commits on Mar 2, 2017

  1. Jit interface support for devirtualization

    Add new method to jit interface so the jit can determine what derived
    method might be called for a given base method, derived class pair.
    
    Implement support in the VM and in other places (zap, spmi).
    AndyAyersMS committed Mar 2, 2017
    Configuration menu
    Copy the full SHA
    70cf442 View commit details
    Browse the repository at this point in the history
  2. Devirtualize calls in some simple cases

    Devirtualize calls where the this object type at a call site
    is a subtype of the type described at the call site. Currently learns
    types from local and arg references and a subset of other operators.
    
    Will devirtualize if either the class or method is final (sealed in C#),
    or if the type is known exactly (eg from a newobj).
    
    Devirtualization is run twice, once during importation, and again in a
    limited way after inlinining. Calls devirtualized during importation are
    are subsequently eligible for inlining. Calls devirtualized during inlining
    currently cannot be inlined.
    AndyAyersMS committed Mar 2, 2017
    Configuration menu
    Copy the full SHA
    393ee92 View commit details
    Browse the repository at this point in the history