-
Jakob Gruber authored
Even in the most basic case (the task queue only ever contains a single element), this function triggers ~4KB in zone allocations. These allocations are basically lost and can never be reused. Avoid this by allocating inside a new temporary zone that is only alive during the ComputeLoopState function call. This reduces allocation size for the zone used during load elimination from ~30KB to ~15KB when compiling a trivial for-loop example. An alternative solution would be to switch to something similar to SmallVector (which uses a statically-sized stack storage before switching to heap allocations), but based on zones instead of malloc. Bug: v8:9427,v8:6150 Change-Id: Ic25abe6d48ac718c9ced2f9ef581f244030980fa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1714869 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#62883}
d267c337