• Tobias Tebbi's avatar
    [turbofan] use ZoneUnorderedMap for NodeCache · c0c3b207
    Tobias Tebbi authored
    This fixes a non-determinism issue caused by the cache being full.
    Depending on the non-deterministic value of the handles in HeapConstant
    nodes, different cache entries would be overwritten in this case.
    
    The old implementation of NodeCache had a fixed limit, overwriting
    entries when the cache is full. This behavior didn't really make sense,
    but the hand-written hash map implementation couldn't handle arbitrary
    numbers of hash collisions, so removing the limit wasn't an option either.
    Thus this CL just replaces the custom hash map with a normal
    std::unordered_map, that is, a ZoneUnorderedMap.
    
    Bug: chromium:1046815
    Change-Id: I95269f2b1068eb9dfe3ee2ab5cca1cb460bc8fa3
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2087405Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
    Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#66592}
    c0c3b207
node-cache-unittest.cc 4.24 KB