Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

RFC: Does call-graph-based function placement belong in Binaryen?

Offen
#9,260 5 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Anfängerfreundlichkeit
15/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
wasm
Bereich
compilers

Rechercherichtung

This is a scope question, not a code task: the issue asks whether an opt-in call-graph-based function placement pass belongs in Binaryen at all. Read the existing reorder-functions pass to see how it differs, and check the one comment for maintainer input. Done means a maintainer answers the scope question; any algorithm or patch comes only after that.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Would an opt-in pass that places callers and callees near each other be within
Binaryen's scope? Unlike reorder-functions, which reduces index encoding
size, this would aim to improve locality in downstream execution.

The tension is:

  • Lightweight runtimes may lack graph-based code placement. If they compile
    and allocate code in Wasm function order, Binaryen could do the analysis
    offline and potentially improve locality without adding runtime complexity.
  • Cache layout is outside Wasm IR's abstraction. Binaryen does not know the
    final machine-code layout, and Wasm function order does not guarantee native
    code proximity. This optimization would depend on runtime behavior.

Should Binaryen bridge that gap with an explicitly opt-in pass, or should this
remain a runtime-specific optimization even when lightweight runtimes cannot
practically implement it?

I'd like to settle that scope question before proposing an algorithm or PR.

Vorherrschende Sprache
WebAssembly
Sterne
8.7k
Forks
895
Ø Merge
2 T. 4 Std.
Gemergte PRs (30 T.)
103

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus WebAssembly/binaryen

Alle Issues in WebAssembly/binaryen

Ähnliche Issues

Weitere Issues zu Compilers

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.