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

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

Open
1 of 4 tasks
rakudrama opened this issue Oct 16, 2024 · 1 comment
Open
1 of 4 tasks

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

rakudrama opened this issue Oct 16, 2024 · 1 comment
Labels
area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. P3 A lower priority bug or feature request triaged Issue has been triaged by sub team type-performance Issue relates to performance or code size

Comments

@rakudrama
Copy link
Member

rakudrama commented Oct 16, 2024

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
  • [ ]
@rakudrama rakudrama added area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. P3 A lower priority bug or feature request type-performance Issue relates to performance or code size labels Oct 16, 2024
@a-siva a-siva added the triaged Issue has been triaged by sub team label Oct 16, 2024
@a-siva
Copy link
Contributor

a-siva commented Oct 16, 2024

//cc @alexmarkov

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-vm Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends. P3 A lower priority bug or feature request triaged Issue has been triaged by sub team type-performance Issue relates to performance or code size
Projects
None yet
Development

No branches or pull requests

2 participants