elliottt opened issue #6592:
Feature
Add a new method to the
ArgsAccumulator
struct that's specifically for pushing arguments that don't match the formal parameters/return values. Add a flag toArgsAccumulator
that records that if function has been called, and add a debug assertion inArgsAccumulator::push
that the flag isfalse
.Benefit
This would prevent special args/return values collected during
compute_arg_locs
from introducing off-by-one errors when generating the args/rets pseudo instructions.Implementation
The implementation would involve adding the functions and assertions mentioned above, and refactoring the implementations of
compute_arg_locs
in each backend.Alternatives
We can continue with things the way they are. This code doesn't change very frequently, so the cost for debugging a problem here is not huge.
elliottt labeled issue #6592:
Feature
Add a new method to the
ArgsAccumulator
struct that's specifically for pushing arguments that don't match the formal parameters/return values. Add a flag toArgsAccumulator
that records that if function has been called, and add a debug assertion inArgsAccumulator::push
that the flag isfalse
.Benefit
This would prevent special args/return values collected during
compute_arg_locs
from introducing off-by-one errors when generating the args/rets pseudo instructions.Implementation
The implementation would involve adding the functions and assertions mentioned above, and refactoring the implementations of
compute_arg_locs
in each backend.Alternatives
We can continue with things the way they are. This code doesn't change very frequently, so the cost for debugging a problem here is not huge.
elliottt labeled issue #6592:
Feature
Add a new method to the
ArgsAccumulator
struct that's specifically for pushing arguments that don't match the formal parameters/return values. Add a flag toArgsAccumulator
that records that if function has been called, and add a debug assertion inArgsAccumulator::push
that the flag isfalse
.Benefit
This would prevent special args/return values collected during
compute_arg_locs
from introducing off-by-one errors when generating the args/rets pseudo instructions.Implementation
The implementation would involve adding the functions and assertions mentioned above, and refactoring the implementations of
compute_arg_locs
in each backend.Alternatives
We can continue with things the way they are. This code doesn't change very frequently, so the cost for debugging a problem here is not huge.
ilikepi63 commented on issue #6592:
Hey, I created this PR with regards to the above issue: https://github.com/bytecodealliance/wasmtime/pull/6613
elliottt closed issue #6592:
Feature
Add a new method to the
ArgsAccumulator
struct that's specifically for pushing arguments that don't match the formal parameters/return values. Add a flag toArgsAccumulator
that records that if function has been called, and add a debug assertion inArgsAccumulator::push
that the flag isfalse
.Benefit
This would prevent special args/return values collected during
compute_arg_locs
from introducing off-by-one errors when generating the args/rets pseudo instructions.Implementation
The implementation would involve adding the functions and assertions mentioned above, and refactoring the implementations of
compute_arg_locs
in each backend.Alternatives
We can continue with things the way they are. This code doesn't change very frequently, so the cost for debugging a problem here is not huge.
Last updated: Dec 23 2024 at 12:05 UTC