-
Ross McIlroy authored
Simplifies the traversal of nodes in Scheduler::PrepareUses to avoid having to carefully order stack traversal for pre/post ordering visits. Instead simply pre visit when pushing a node onto the stack, then post visit the node when popping it from the stack and then visiting it's inputs. This keeps the same invariants required, but reduces visit overhead. In addition, move checking for CoupledControlEdges out of Increment/DecrementUnscheduledUseCounts such that the coupled control edge calculation only needs to be done once per node, rather than once for every input of the node. Also remove unecessary recursion from these functions. All told, these optimizations reduce the PrepareUses overhead by 40-50%. BUG=v8:9684 Change-Id: I934523a732892a1f66d7e77f8d04e200169080f1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2863602 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#74373}
3f28ca94