• Pierre Langlois's avatar
    [test] Make full space simulation work with --no-inline-new. · 74565bf3
    Pierre Langlois authored
    When inlined allocations are disabled, the space->limit() does not point to the
    end of the current page. Instead, it points to the current allocation pointer so
    is the same as space->top().
    
    See how the limit is computed, if heap()->inline_allocation_disabled(), then the
    limit will be the same as the requested allocation area:
    
    ```
    Address SpaceWithLinearArea::ComputeLimit(Address start, Address end,
                                              size_t min_size) {
      DCHECK_GE(end - start, min_size);
    
      if (heap()->inline_allocation_disabled()) {
        // Fit the requested area exactly.
        return start + min_size;
      } else if (SupportsInlineAllocation() && AllocationObserversActive()) {
        // ...
      } else {
        // The entire node can be used as the linear allocation area.
        return end;
      }
    }
    ```
    
    If we want to simulate filling up a whole page in the new space, we can instead
    look at the ToSpace's page_high() which will be the end of the current page in
    which we're allocating.
    
    Bug: v8:9906
    Change-Id: I81113d151bc083cd22d17ea1a4fbae7fef9dff6d
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1886914Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
    Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
    Cr-Commit-Position: refs/heads/master@{#64612}
    74565bf3
heap-utils.h 2.54 KB