Skip to content

IR: Need a way to represent dispatch-resolved "deferred" calls (for --trim) #57888

@gbaraldi

Description

@gbaraldi

One of the missing features around trimming currently is what I'm calling "delayed" calls. Basically operations that mean that a call will be performed using a specificic signature, but instead of going through the typical Expr(:invoke path, they might happen eventually.

An incomplete list of operations is

  • cfunction
  • tasks
  • Opaque Closures
  • atexit
  • Finalizers

They all could be represented by something like a :virtual_invoke, which serves just as a token that indicates to typeinf_ext_toplevel/create_native that code must be compiled for those code_instances. ccallable is already an example of a delayed call, but it's more well behaved since it depends only on function definitions

Metadata

Metadata

Assignees

No one assigned

    Labels

    trimmingIssues with trimming functionality or PR's relevant to its performance/functionality

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions