Description[turbofan] reduce ResolveControlFlow overhead.
I found this optimization opportunity when analyzing some pathological
compile-time examples. When tying together live ranges across control
flow boundaries, we used to repeatedly check if the top level range was
spilled in deferred blocks or not. This proved to be a hotspot in such
cases (i.e. the pathological compile time ones).
Because the analysis needs to progress block by block and not live range by live range, we cannot feasibly save per-range information to
remove the hotspot. Instead, we save this information when
constructing LiveRangeBounds.
The result is 2.5 to 7% improvement in the pathological cases, and a few
similar bonuses in perf in a couple of other benchmarks.
Also, opportunistically removed the loop counting the number of child
ranges, since we have that count from the new (post - refactoring)
range numbering technique.
BUG=
Committed: https://crrev.com/0bcfb26e7c45664ed94b1139eeb3f580725929fd
Cr-Commit-Position: refs/heads/master@{#32071}
Patch Set 1 : #
Total comments: 4
Patch Set 2 : #
Messages
Total messages: 13 (6 generated)
|