Ignore:
Timestamp:
Nov 8, 2019, 4:11:28 PM (6 years ago)
Author:
Matt Lewis
Message:

Unreviewed, rolling out r252229.

This caused internal failures.

Reverted changeset:

"Split ArithProfile into a Unary and a Binary version"
https://bugs.webkit.org/show_bug.cgi?id=202832
https://trac.webkit.org/changeset/252229

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/jit/JITOperations.cpp

    r252229 r252273  
    26462646}
    26472647
    2648 ALWAYS_INLINE static JSValue profiledAdd(JSGlobalObject* globalObject, JSValue op1, JSValue op2, BinaryArithProfile& arithProfile)
     2648ALWAYS_INLINE static JSValue profiledAdd(JSGlobalObject* globalObject, JSValue op1, JSValue op2, ArithProfile& arithProfile)
    26492649{
    26502650    arithProfile.observeLHSAndRHS(op1, op2);
     
    26622662}
    26632663
    2664 EncodedJSValue JIT_OPERATION operationValueAddProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, BinaryArithProfile* arithProfile)
     2664EncodedJSValue JIT_OPERATION operationValueAddProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, ArithProfile* arithProfile)
    26652665{
    26662666    ASSERT(arithProfile);
     
    26802680    JSValue op2 = JSValue::decode(encodedOp2);
    26812681
    2682     BinaryArithProfile* arithProfile = addIC->arithProfile();
     2682    ArithProfile* arithProfile = addIC->arithProfile();
    26832683    ASSERT(arithProfile);
    26842684    arithProfile->observeLHSAndRHS(op1, op2);
     
    27022702    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    27032703
    2704     BinaryArithProfile* arithProfile = addIC->arithProfile();
     2704    ArithProfile* arithProfile = addIC->arithProfile();
    27052705    ASSERT(arithProfile);
    27062706    return JSValue::encode(profiledAdd(globalObject, JSValue::decode(encodedOp1), JSValue::decode(encodedOp2), *arithProfile));
     
    27172717
    27182718    auto nonOptimizeVariant = operationValueAddNoOptimize;
    2719     if (BinaryArithProfile* arithProfile = addIC->arithProfile())
     2719    if (ArithProfile* arithProfile = addIC->arithProfile())
    27202720        arithProfile->observeLHSAndRHS(op1, op2);
    27212721    addIC->generateOutOfLine(callFrame->codeBlock(), nonOptimizeVariant);
     
    27502750}
    27512751
    2752 ALWAYS_INLINE static EncodedJSValue profiledMul(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, BinaryArithProfile& arithProfile, bool shouldObserveLHSAndRHSTypes = true)
     2752ALWAYS_INLINE static EncodedJSValue profiledMul(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, ArithProfile& arithProfile, bool shouldObserveLHSAndRHSTypes = true)
    27532753{
    27542754    VM& vm = globalObject->vm();
     
    27912791
    27922792    auto nonOptimizeVariant = operationValueMulNoOptimize;
    2793     if (BinaryArithProfile* arithProfile = mulIC->arithProfile())
     2793    if (ArithProfile* arithProfile = mulIC->arithProfile())
    27942794        arithProfile->observeLHSAndRHS(JSValue::decode(encodedOp1), JSValue::decode(encodedOp2));
    27952795    mulIC->generateOutOfLine(callFrame->codeBlock(), nonOptimizeVariant);
     
    28022802}
    28032803
    2804 EncodedJSValue JIT_OPERATION operationValueMulProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, BinaryArithProfile* arithProfile)
     2804EncodedJSValue JIT_OPERATION operationValueMulProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, ArithProfile* arithProfile)
    28052805{
    28062806    VM& vm = globalObject->vm();
     
    28182818    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    28192819
    2820     BinaryArithProfile* arithProfile = mulIC->arithProfile();
     2820    ArithProfile* arithProfile = mulIC->arithProfile();
    28212821    ASSERT(arithProfile);
    28222822    arithProfile->observeLHSAndRHS(JSValue::decode(encodedOp1), JSValue::decode(encodedOp2));
     
    28372837    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    28382838
    2839     BinaryArithProfile* arithProfile = mulIC->arithProfile();
     2839    ArithProfile* arithProfile = mulIC->arithProfile();
    28402840    ASSERT(arithProfile);
    28412841    return profiledMul(globalObject, encodedOp1, encodedOp2, *arithProfile);
     
    28632863}
    28642864
    2865 EncodedJSValue JIT_OPERATION operationArithNegateProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOperand, UnaryArithProfile* arithProfile)
     2865EncodedJSValue JIT_OPERATION operationArithNegateProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOperand, ArithProfile* arithProfile)
    28662866{
    28672867    ASSERT(arithProfile);
     
    28722872
    28732873    JSValue operand = JSValue::decode(encodedOperand);
    2874     arithProfile->observeArg(operand);
     2874    arithProfile->observeLHS(operand);
    28752875
    28762876    JSValue primValue = operand.toPrimitive(globalObject);
     
    29002900    JSValue operand = JSValue::decode(encodedOperand);
    29012901
    2902     UnaryArithProfile* arithProfile = negIC->arithProfile();
     2902    ArithProfile* arithProfile = negIC->arithProfile();
    29032903    ASSERT(arithProfile);
    2904     arithProfile->observeArg(operand);
     2904    arithProfile->observeLHS(operand);
    29052905    negIC->generateOutOfLine(callFrame->codeBlock(), operationArithNegateProfiled);
    29062906
     
    29342934    JSValue operand = JSValue::decode(encodedOperand);
    29352935
    2936     if (UnaryArithProfile* arithProfile = negIC->arithProfile())
    2937         arithProfile->observeArg(operand);
     2936    if (ArithProfile* arithProfile = negIC->arithProfile())
     2937        arithProfile->observeLHS(operand);
    29382938    negIC->generateOutOfLine(callFrame->codeBlock(), operationArithNegate);
    29392939
     
    29612961}
    29622962
    2963 ALWAYS_INLINE static EncodedJSValue profiledSub(VM& vm, JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, BinaryArithProfile& arithProfile, bool shouldObserveLHSAndRHSTypes = true)
     2963ALWAYS_INLINE static EncodedJSValue profiledSub(VM& vm, JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, ArithProfile& arithProfile, bool shouldObserveLHSAndRHSTypes = true)
    29642964{
    29652965    auto scope = DECLARE_THROW_SCOPE(vm);
     
    29852985}
    29862986
    2987 EncodedJSValue JIT_OPERATION operationValueSubProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, BinaryArithProfile* arithProfile)
     2987EncodedJSValue JIT_OPERATION operationValueSubProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, ArithProfile* arithProfile)
    29882988{
    29892989    ASSERT(arithProfile);
     
    30033003
    30043004    auto nonOptimizeVariant = operationValueSubNoOptimize;
    3005     if (BinaryArithProfile* arithProfile = subIC->arithProfile())
     3005    if (ArithProfile* arithProfile = subIC->arithProfile())
    30063006        arithProfile->observeLHSAndRHS(JSValue::decode(encodedOp1), JSValue::decode(encodedOp2));
    30073007    subIC->generateOutOfLine(callFrame->codeBlock(), nonOptimizeVariant);
     
    30293029    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    30303030
    3031     BinaryArithProfile* arithProfile = subIC->arithProfile();
     3031    ArithProfile* arithProfile = subIC->arithProfile();
    30323032    ASSERT(arithProfile);
    30333033    arithProfile->observeLHSAndRHS(JSValue::decode(encodedOp1), JSValue::decode(encodedOp2));
     
    30483048    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    30493049
    3050     BinaryArithProfile* arithProfile = subIC->arithProfile();
     3050    ArithProfile* arithProfile = subIC->arithProfile();
    30513051    ASSERT(arithProfile);
    30523052    return profiledSub(vm, globalObject, encodedOp1, encodedOp2, *arithProfile);
Note: See TracChangeset for help on using the changeset viewer.