-
Leszek Swirski authored
LiveNodeInfo was stored in a Node->LiveNodeInfo map, which was never copied or merged alongside control flow. Lookups in this map were a bit part of register allocation time, and it was mostly duplicating data that was already in the ValueNode. So, instead of a separate LiveNodeInfo, store the current register allocation state directly on the ValueNode. This involves a bit of clobbering of state (in particular, we have to clobber the next_use id), but that doesn't matter since regalloc is a forward pass and with this change, it's less memory and zero map lookups. Measuring on a (very large) function, this reduces compile time from 300ms to 200ms. Bug: v8:7700 Change-Id: I02620f1a795bd308d1de03d694c102cb5ea3ff50 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3500617Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#79339}
3fd2428c