Changeset 278424 in webkit


Ignore:
Timestamp:
Jun 3, 2021 3:27:32 PM (3 years ago)
Author:
fpizlo@apple.com
Message:

DFG should eliminate obvious store barriers
https://bugs.webkit.org/show_bug.cgi?id=226604

Reviewed by Mark Lam.

This has a couple changes:

  • PutByOffset doesn't GC! So let's not say that it does.
  • The store barrier clustering phase is no longer called the store barrier fencing phase in dumps.

Small Speedometer2 speed-up. Definite speed-up for Elm.

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGStoreBarrierClusteringPhase.cpp:
Location:
trunk/Source/JavaScriptCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r278413 r278424  
     12021-06-03  Filip Pizlo  <fpizlo@apple.com>
     2
     3        DFG should eliminate obvious store barriers
     4        https://bugs.webkit.org/show_bug.cgi?id=226604
     5
     6        Reviewed by Mark Lam.
     7
     8        This has a couple changes:
     9       
     10        - PutByOffset doesn't GC! So let's not say that it does.
     11
     12        - The store barrier clustering phase is no longer called the store barrier fencing phase in
     13          dumps.
     14
     15        Small Speedometer2 speed-up. Definite speed-up for Elm.
     16
     17        * dfg/DFGDoesGC.cpp:
     18        (JSC::DFG::doesGC):
     19        * dfg/DFGStoreBarrierClusteringPhase.cpp:
     20
    1212021-06-03  Patrick Angle  <pangle@apple.com>
    222
  • trunk/Source/JavaScriptCore/dfg/DFGDoesGC.cpp

    r277926 r278424  
    11/*
    2  * Copyright (C) 2014-2020 Apple Inc. All rights reserved.
     2 * Copyright (C) 2014-2021 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    259259    case DataViewGetFloat:
    260260    case DataViewSet:
     261    case PutByOffset:
    261262        return false;
    262263
     
    321322    case PutByIdFlush:
    322323    case PutByIdWithThis:
    323     case PutByOffset:
    324324    case PutByValWithThis:
    325325    case PutDynamicVar:
  • trunk/Source/JavaScriptCore/dfg/DFGStoreBarrierClusteringPhase.cpp

    r261895 r278424  
    11/*
    2  * Copyright (C) 2016 Apple Inc. All rights reserved.
     2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    4141namespace {
    4242
     43constexpr bool verbose = false;
     44
    4345class StoreBarrierClusteringPhase : public Phase {
    4446public:
    4547    StoreBarrierClusteringPhase(Graph& graph)
    46         : Phase(graph, "store barrier fencing")
     48        : Phase(graph, "store barrier clustering")
    4749        , m_insertionSet(graph)
    4850    {
     
    99101            // don't have evidence that it would be worth it.
    100102            if (doesGC(m_graph, node) || mayExit(m_graph, node) != DoesNotExit) {
     103                if (verbose) {
     104                    dataLog("Possible GC point at ", node, "\n");
     105                    dataLog("    doesGC = ", doesGC(m_graph, node), "\n");
     106                    dataLog("    mayExit = ", mayExit(m_graph, node), "\n");
     107                }
    101108                futureGC = true;
    102109                continue;
Note: See TracChangeset for help on using the changeset viewer.