Skip to content

ZJIT: ruby-bench perf burndown #1030

Description

@k0kubun

This is a list of things that should speed up benchmarks in ruby-bench.

micro

  • throw
    • Inline block calls and specialize TAG_RETURN throw from a block. Return from the function, popping multiple frames as needed. (PoC)
  • setivar_object, setivar_young
    • GC fastpath for write barriers. (PoC)
  • ruby-xor
    • Inline String#setbyte fastpath. (PoC)
    • I haven't fully figured out what to do for "cached coderange" yet. Are there realistically no drawbacks? Should we profile, specialize, and recompile? Should the fastpath always have two branches? If we decide to just always clear it, it'd be also nice to lift it into HIR to deduplicate them.
  • str_concat
  • send_cfunc_block

other

headline

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions