-
tzik authored
The performance regression comes from the extra time of ExtractHandlerContext called by TriggerPromiseReaction, On the previous code, it takes the current Context from Isolate, and on the typical case of the new code, the Context is taken from the promise reaction function, that adds a few memory read ops and a few conditional branches. This CL adds Label::kDeferred to non-typical cases of ExtractHandlerContext, so that newly added instructions have smaller impact under the speculative execution. On a local benchmark, this fixes half of the regression. Bug: chromium:936717 Change-Id: I34ce858f77d7d604dd596711a239160ed8dac383 Reviewed-on: https://chromium-review.googlesource.com/c/1496774 Commit-Queue: Taiju Tsuiki <tzik@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#59964}
06770cef