Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

invoked calls: record invoke signature in backedges #46010

Merged
merged 11 commits into from
Aug 24, 2022
Merged

Commits on Aug 22, 2022

  1. Support adding backedges with invokesig

    This allows a MethodInstance to store dispatch tuples as well as other
    MethodInstances among their backedges. The motivation is to properly
    handle invalidation with `invoke`, which allows calling a
    less-specific method and thus runs afoul of our standard mechanisms to
    detect "outdated" dispatch.
    
    Additionally:
    
    - provide backedge-iterators for both C and Julia that abstracts
      the specific storage mechanism.
    
    - fix a bug in the CodeInstance `relocatability` field, where methods
      that only return a constant (and hence store `nothing` for
      `inferred`) were deemed non-relocatable.
    
    - fix a bug in which #43990 should have checked that the method had
      not been deleted. Tests passed formerly simply because we weren't
      caching external CodeInstances that inferred down to a `Const`;
      fixing that exposed the bug.  This bug has been exposed since
      merging #43990 for non-`Const` inference, and would affect Revise
      etc.
    timholy committed Aug 22, 2022
    Configuration menu
    Copy the full SHA
    7080f68 View commit details
    Browse the repository at this point in the history
  2. don't include subtype

    timholy committed Aug 22, 2022
    Configuration menu
    Copy the full SHA
    7d5f1a8 View commit details
    Browse the repository at this point in the history
  3. Support precompile(::Method, argtypes)

    This mimics an `invoke` call
    timholy committed Aug 22, 2022
    Configuration menu
    Copy the full SHA
    e937235 View commit details
    Browse the repository at this point in the history
  4. fix an ambiguity

    timholy committed Aug 22, 2022
    Configuration menu
    Copy the full SHA
    737efc8 View commit details
    Browse the repository at this point in the history
  5. Avoid name lookup

    timholy committed Aug 22, 2022
    Configuration menu
    Copy the full SHA
    5808545 View commit details
    Browse the repository at this point in the history
  6. Fix sparams generation

    timholy committed Aug 22, 2022
    Configuration menu
    Copy the full SHA
    fa5c237 View commit details
    Browse the repository at this point in the history
  7. Apply suggestions from code review

    Co-authored-by: Jameson Nash <vtjnash@gmail.com>
    timholy and vtjnash committed Aug 22, 2022
    Configuration menu
    Copy the full SHA
    1b9535b View commit details
    Browse the repository at this point in the history
  8. Address review comments

    timholy committed Aug 22, 2022
    Configuration menu
    Copy the full SHA
    d1923b0 View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2022

  1. Cache invokesig in backedge data

    Encode the `invokesig` in `ext_targets` so it gets cached to disk.
    timholy committed Aug 23, 2022
    Configuration menu
    Copy the full SHA
    5aaf76d View commit details
    Browse the repository at this point in the history

Commits on Aug 24, 2022

  1. Fix jl_egal call

    timholy committed Aug 24, 2022
    Configuration menu
    Copy the full SHA
    945bcfc View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8a9a87c View commit details
    Browse the repository at this point in the history