-
Clemens Hammacher authored
The interpreter used a ZoneVector<WasmVal> to model the value stack. Thus, at each single pop to the stack, a bounds check was performed, and the storage was potentially extended. This CL changes this to pre-allocate enough space for the stack of a function when a new frame is entered. This avoids any checks for pushs and pops. Instead of storing a ZoneVector<WasmVal>, we store WasmVal* directly. The maximum value stack size is precomputed together with the control transfer side table. This CL speeds up interpreted execution by 15% on average (measured locally on a Z840). R=ahaas@chromium.org BUG=v8:5822 Change-Id: If949f7ee5233d874cd6a04b7dde2d7b4a95e45ea Reviewed-on: https://chromium-review.googlesource.com/488061 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#44902}
213d1fa6