Changeset 276858 in webkit


Ignore:
Timestamp:
Apr 30, 2021 3:48:43 PM (3 years ago)
Author:
fpizlo@apple.com
Message:

Make small JIT pool tests pass on AS
https://bugs.webkit.org/show_bug.cgi?id=225256

Reviewed by Mark Lam.

If we ask for a JIT pool that is smaller than the smallest possible "region" (thing with jump
island) that we can create -- i.e. smaller than a jump region, then assume that the user is
asking us to create a pool that has that much usable space plus a jump region.

I think that this makes the option easier to use when you're testing ridiculously small JIT
pools, which we happen to do in our test suite.

Also remove some dead options I didn't mean to commit.

  • jit/ExecutableAllocator.cpp:

(JSC::initializeJITPageReservation):

  • runtime/OptionsList.h:
Location:
trunk/Source/JavaScriptCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r276855 r276858  
     12021-04-30  Filip Pizlo  <fpizlo@apple.com>
     2
     3        Make small JIT pool tests pass on AS
     4        https://bugs.webkit.org/show_bug.cgi?id=225256
     5
     6        Reviewed by Mark Lam.
     7
     8        If we ask for a JIT pool that is smaller than the smallest possible "region" (thing with jump
     9        island) that we can create -- i.e. smaller than a jump region, then assume that the user is
     10        asking us to create a pool that has that much usable space plus a jump region.
     11
     12        I think that this makes the option easier to use when you're testing ridiculously small JIT
     13        pools, which we happen to do in our test suite.
     14
     15        Also remove some dead options I didn't mean to commit.
     16
     17        * jit/ExecutableAllocator.cpp:
     18        (JSC::initializeJITPageReservation):
     19        * runtime/OptionsList.h:
     20
    1212021-04-30  Filip Pizlo  <fpizlo@apple.com>
    222
  • trunk/Source/JavaScriptCore/jit/ExecutableAllocator.cpp

    r276855 r276858  
    333333    reservation.size = fixedExecutableMemoryPoolSize;
    334334
    335     if (Options::jitMemoryReservationSize())
     335    if (Options::jitMemoryReservationSize()) {
    336336        reservation.size = Options::jitMemoryReservationSize();
    337337
     338#if ENABLE(JUMP_ISLANDS)
     339        // If asked for a reservation smaller than island size, assume that we want that size allocation
     340        // plus an island. The alternative would be to turn off jump islands, but since we only use
     341        // this for testing, this is probably the easier way to do it.
     342        //
     343        // The main reason for this is that some JSC stress tests run with a 50KB pool. This hack means
     344        // we don't have to change anything about those tests.
     345        if (reservation.size < islandRegionSize)
     346            reservation.size += islandRegionSize;
     347#endif // ENABLE(JUMP_ISLANDS)
     348    }
    338349    reservation.size = std::max(roundUpToMultipleOf(pageSize(), reservation.size), pageSize() * 2);
    339350
  • trunk/Source/JavaScriptCore/runtime/OptionsList.h

    r276855 r276858  
    533533    v(Bool, useSharedArrayBuffer, false, Normal, nullptr) \
    534534    v(Bool, useTopLevelAwait, true, Normal, "allow the await keyword at the top level of a module.") \
    535     v(Bool, dumpLinking, false, Normal, nullptr) \
    536     v(Bool, verifySame4GBLink, false, Normal, nullptr) \
    537535    v(Bool, verboseExecutablePoolAllocation, false, Normal, nullptr) \
    538536
Note: See TracChangeset for help on using the changeset viewer.