Skip to content

Inline setnodevector(..., 0). - #156

Merged
ltratt merged 1 commit into
ykjit:mainfrom
ltratt:inline_setnodevector_zero
Aug 10, 2026
Merged

Inline setnodevector(..., 0).#156
ltratt merged 1 commit into
ykjit:mainfrom
ltratt:inline_setnodevector_zero

Conversation

@ltratt

@ltratt ltratt commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

setnodevector is really two functions: a general purpose function that can be called with an arbitrary number of run-time values; and a special, fast, case for zero, which is called a lot, mostly in luaH_new. The easiest way to inline this into a trace is to manually inline it! This speeds up Fannkuch and Mandlebrot, without any obvious ill effects on anything else.

`setnodevector` is really two functions: a general purpose function that
can be called with an arbitrary number of run-time values; and a
special, fast, case for zero, which is called a lot, mostly in
`luaH_new`. The easiest way to inline this into a trace is to manually
inline it! This speeds up Fannkuch and Mandlebrot, without any obvious
ill effects on anything else.
@ltratt
ltratt enabled auto-merge August 10, 2026 20:08
@ltratt
ltratt added this pull request to the merge queue Aug 10, 2026
Merged via the queue into ykjit:main with commit 7655df1 Aug 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant