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

Behavior of relaxed operations for multi-tier compilers #141

Open
yurydelendik opened this issue Apr 17, 2023 · 1 comment
Open

Behavior of relaxed operations for multi-tier compilers #141

yurydelendik opened this issue Apr 17, 2023 · 1 comment

Comments

@yurydelendik
Copy link
Contributor

The https://github.com/WebAssembly/relaxed-simd/blob/c4c9ddaf0d8b086f64531ed80604b44e6f19efec/document/core/exec/numerics.rst#relaxed-operations specifies:

Technically, each such operator produces a fixed-size list of sets of allowed values. For each execution of the operator in the same environment, only values from the set at the same position in the list are returned, i.e., each environment globally chooses a fixed projection for each operator.

For JS engines, it is common to use interpreter or baseline compiler first, continue compilation in the optimizing compiler, and then hot-swap interpreter/non-optimized code with optimized one.

Is it allowed for an engine to choose values from the set at one position e.g. in the baseline tier, and later (for any reason) choose values from the set at different position in the optimizing tier?

@Maratyszcza
Copy link
Collaborator

Maratyszcza commented Apr 17, 2023

As switching the compiler tier is invisible to the user, they're considered the same environments, and all compilation tiers should choose the same position in the set.

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

No branches or pull requests

2 participants