Changeset 223703 in webkit


Ignore:
Timestamp:
Oct 19, 2017 1:16:19 PM (6 years ago)
Author:
sbarati@apple.com
Message:

Turn poly proto back on by default and remove the option
https://bugs.webkit.org/show_bug.cgi?id=178525

Reviewed by Mark Lam.

Source/JavaScriptCore:

I added this option because I thought it'd speed speedometer up because the
original poly proto patch slowed speedometer down. It turns out that
allocating poly proto objects is not what slows speedometer down. It's
other code I added in the runtime that needs to be poly proto aware. I'll
be addressing these in follow up patches.

  • runtime/Options.h:
  • runtime/StructureInlines.h:

(JSC::Structure::shouldConvertToPolyProto):

Tools:

  • Scripts/run-jsc-stress-tests:
Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r223691 r223703  
     12017-10-19  Saam Barati  <sbarati@apple.com>
     2
     3        Turn poly proto back on by default and remove the option
     4        https://bugs.webkit.org/show_bug.cgi?id=178525
     5
     6        Reviewed by Mark Lam.
     7
     8        I added this option because I thought it'd speed speedometer up because the
     9        original poly proto patch slowed speedometer down. It turns out that
     10        allocating poly proto objects is not what slows speedometer down. It's
     11        other code I added in the runtime that needs to be poly proto aware. I'll
     12        be addressing these in follow up patches.
     13
     14        * runtime/Options.h:
     15        * runtime/StructureInlines.h:
     16        (JSC::Structure::shouldConvertToPolyProto):
     17
    1182017-10-19  Robin Morisset  <rmorisset@apple.com>
    219
  • trunk/Source/JavaScriptCore/runtime/Options.h

    r223222 r223703  
    474474    v(bool, useObjectRestSpread, true, Normal, "If true, we will enable Object Rest/Spread feature.") \
    475475    v(bool, useArrayAllocationProfiling, true, Normal, "If true, we will use our normal array allocation profiling. If false, the allocation profile will always claim to be undecided.")\
    476     v(bool, usePolyProto, false, Normal, "If true, we may convert allocations to generate poly proto structures.") \
    477476    v(bool, forcePolyProto, false, Normal, "If true, create_this will always create an object with a poly proto structure.")
    478477
  • trunk/Source/JavaScriptCore/runtime/StructureInlines.h

    r223222 r223703  
    448448ALWAYS_INLINE bool Structure::shouldConvertToPolyProto(const Structure* a, const Structure* b)
    449449{
    450     if (!Options::usePolyProto())
    451         return false;
    452 
    453450    if (!a || !b)
    454451        return false;
  • trunk/Tools/ChangeLog

    r223678 r223703  
     12017-10-19  Saam Barati  <sbarati@apple.com>
     2
     3        Turn poly proto back on by default and remove the option
     4        https://bugs.webkit.org/show_bug.cgi?id=178525
     5
     6        Reviewed by Mark Lam.
     7
     8        * Scripts/run-jsc-stress-tests:
     9
    1102017-10-18  Ryosuke Niwa  <rniwa@webkit.org>
    211
  • trunk/Tools/Scripts/run-jsc-stress-tests

    r223239 r223703  
    452452
    453453# We force all tests to use a smaller (1.5M) stack so that stack overflow tests can run faster.
    454 BASE_OPTIONS = ["--useFTLJIT=false", "--useFunctionDotArguments=true", "--validateExceptionChecks=true", "--maxPerThreadStackUsage=1572864", "--usePolyProto=true"]
    455 EAGER_OPTIONS = ["--thresholdForJITAfterWarmUp=10", "--thresholdForJITSoon=10", "--thresholdForOptimizeAfterWarmUp=20", "--thresholdForOptimizeAfterLongWarmUp=20", "--thresholdForOptimizeSoon=20", "--thresholdForFTLOptimizeAfterWarmUp=20", "--thresholdForFTLOptimizeSoon=20", "--maximumEvalCacheableSourceLength=150000", "--useEagerCodeBlockJettisonTiming=true", "--usePolyProto=true"]
     454BASE_OPTIONS = ["--useFTLJIT=false", "--useFunctionDotArguments=true", "--validateExceptionChecks=true", "--maxPerThreadStackUsage=1572864"]
     455EAGER_OPTIONS = ["--thresholdForJITAfterWarmUp=10", "--thresholdForJITSoon=10", "--thresholdForOptimizeAfterWarmUp=20", "--thresholdForOptimizeAfterLongWarmUp=20", "--thresholdForOptimizeSoon=20", "--thresholdForFTLOptimizeAfterWarmUp=20", "--thresholdForFTLOptimizeSoon=20", "--maximumEvalCacheableSourceLength=150000", "--useEagerCodeBlockJettisonTiming=true"]
    456456# NOTE: Tests rely on this using scribbleFreeCells.
    457 NO_CJIT_OPTIONS = ["--useConcurrentJIT=false", "--thresholdForJITAfterWarmUp=100", "--scribbleFreeCells=true", "--usePolyProto=true"]
    458 B3O1_OPTIONS = ["--defaultB3OptLevel=1", "--usePolyProto=true"]
    459 FTL_OPTIONS = ["--useFTLJIT=true", "--usePolyProto=true"]
    460 PROBE_OSR_EXIT_OPTION = ["--useProbeOSRExit=true", "--usePolyProto=true"]
     457NO_CJIT_OPTIONS = ["--useConcurrentJIT=false", "--thresholdForJITAfterWarmUp=100", "--scribbleFreeCells=true"]
     458B3O1_OPTIONS = ["--defaultB3OptLevel=1"]
     459FTL_OPTIONS = ["--useFTLJIT=true"]
     460PROBE_OSR_EXIT_OPTION = ["--useProbeOSRExit=true"]
    461461
    462462require_relative "webkitruby/jsc-stress-test-writer-#{$testWriter}"
Note: See TracChangeset for help on using the changeset viewer.