• Mythri A's avatar
    [turboprop] Migrate deprecated maps in dynamic map check operator · 9b9ba19e
    Mythri A authored
    If incoming map is deprecated, generate code to migrate the map. Since
    this involves generating additional code and a call to runtime, we only
    do this if one of the receiver maps was a migration target when
    optimizing this function. If not, we deoptimize and discard the
    optimized code if we see a deprecated map. This is to avoid bailout
    loops when we see deprecated maps.
    
    This change does the following:
    // We generated code to migrate deprecated maps only if one of the maps
    // in feedback vector is a migration target.
    if ( there are migration targets in feedback)
    {
      if (checkMaps fails) {
         if (incoming map is deprecated) {
            migrate the map
            checkMaps with the new map
         } else {
           bailout
         }
      }
    } else {
      if (checkMaps fails)
        bailout;
    }
    
    Bug: v8:10582, v8:9684
    Change-Id: I8a04c77ed209dd2fb0300a783d844f2335a678c8
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292231Reviewed-by: 's avatarSathya Gunasekaran  <gsathya@chromium.org>
    Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
    Commit-Queue: Mythri Alle <mythria@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#69179}
    9b9ba19e
test-dynamic-map-check-deprecated-maps.js 847 Bytes