Skip to content

[vm] Inlining heuristics should take into account instruction sizes #56902

Open
@rakudrama

Description

@rakudrama

Not all instructions at the inlining phase result in the same number of bytes of code.
Inlining heuristics should do a better job of predicting code size.

In particlar,

  • Redefinitions reference existing values, so potentially generate no code.
  • GenericCheckBounds annotated with pragma('vm:unsafe:no-bounds-checks') generates no code.
  • The length() input to GenericCheckBounds annotated with pragma('vm:unsafe:no-bounds-checks') often becomes dead after the check is removed.
  • LoadStaticField is 3-4x larger with CallsInitializer
  • [ ]

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3A lower priority bug or feature requestarea-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.triagedIssue has been triaged by sub teamtype-performanceIssue relates to performance or code size

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions