Skip to content

Inline mixed int/float arithmetic and fast-array reads in the interpreter#1549

Merged
saghul merged 1 commit into
masterfrom
interp-float-fastpaths
Jun 29, 2026
Merged

Inline mixed int/float arithmetic and fast-array reads in the interpreter#1549
saghul merged 1 commit into
masterfrom
interp-float-fastpaths

Conversation

@saghul

@saghul saghul commented Jun 27, 2026

Copy link
Copy Markdown
Contributor
Ported from bellard/quickjs:
- 8e97f24044102b5793524ab22b037ca75f536319 "faster add, sub and mul for mixed
  integer floating point operands" (extended here to OP_div; kept NG's direct
  BOTH_FLOAT fast path instead of replacing it).
- 8e8eefb922b205bb56de14e0279b4e42b5f3f460 "optimized array access by inlining
  get_array_el, get_array_el2, get_array_el3 and put_array_el" (applied to
  get_array_el/el2; NG already inlines put_array_el).

Octane (Release + static mimalloc, median of 3): overall score +6%,
NavierStokes +33%.

@saghul saghul force-pushed the interp-float-fastpaths branch from 4c18093 to 2b357f8 Compare June 27, 2026 22:32
@saghul saghul marked this pull request as draft June 27, 2026 22:32
…eter

Ported from bellard/quickjs:
- 8e97f24044102b5793524ab22b037ca75f536319 "faster add, sub and mul for mixed
  integer floating point operands" (extended here to OP_div; kept NG's direct
  BOTH_FLOAT fast path instead of replacing it).
- 8e8eefb "optimized array access by inlining
  get_array_el, get_array_el2, get_array_el3 and put_array_el" (applied to
  get_array_el/el2; NG already inlines put_array_el).

Octane (Release + static mimalloc, median of 3): overall score +6%,
NavierStokes +33%.
@saghul saghul force-pushed the interp-float-fastpaths branch from 2b357f8 to fc6e06b Compare June 27, 2026 22:35
@saghul saghul marked this pull request as ready for review June 27, 2026 22:47
@saghul saghul merged commit 377a25e into master Jun 29, 2026
125 checks passed
@saghul saghul deleted the interp-float-fastpaths branch June 29, 2026 07:36
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