Ignore:
Timestamp:
Nov 4, 2019, 3:47:07 PM (6 years ago)
Author:
Truitt Savell
Message:

Unreviewed, rolling out r252015.

Broke the Windows build

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/252015

File:
1 edited

Legend:

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

    r252015 r252021  
    26452645}
    26462646
    2647 ALWAYS_INLINE static JSValue profiledAdd(JSGlobalObject* globalObject, JSValue op1, JSValue op2, BinaryArithProfile& arithProfile)
     2647ALWAYS_INLINE static JSValue profiledAdd(JSGlobalObject* globalObject, JSValue op1, JSValue op2, ArithProfile& arithProfile)
    26482648{
    26492649    arithProfile.observeLHSAndRHS(op1, op2);
     
    26612661}
    26622662
    2663 EncodedJSValue JIT_OPERATION operationValueAddProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, BinaryArithProfile* arithProfile)
     2663EncodedJSValue JIT_OPERATION operationValueAddProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, ArithProfile* arithProfile)
    26642664{
    26652665    ASSERT(arithProfile);
     
    26792679    JSValue op2 = JSValue::decode(encodedOp2);
    26802680
    2681     BinaryArithProfile* arithProfile = addIC->arithProfile();
     2681    ArithProfile* arithProfile = addIC->arithProfile();
    26822682    ASSERT(arithProfile);
    26832683    arithProfile->observeLHSAndRHS(op1, op2);
     
    27012701    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    27022702
    2703     BinaryArithProfile* arithProfile = addIC->arithProfile();
     2703    ArithProfile* arithProfile = addIC->arithProfile();
    27042704    ASSERT(arithProfile);
    27052705    return JSValue::encode(profiledAdd(globalObject, JSValue::decode(encodedOp1), JSValue::decode(encodedOp2), *arithProfile));
     
    27162716
    27172717    auto nonOptimizeVariant = operationValueAddNoOptimize;
    2718     if (BinaryArithProfile* arithProfile = addIC->arithProfile())
     2718    if (ArithProfile* arithProfile = addIC->arithProfile())
    27192719        arithProfile->observeLHSAndRHS(op1, op2);
    27202720    addIC->generateOutOfLine(callFrame->codeBlock(), nonOptimizeVariant);
     
    27492749}
    27502750
    2751 ALWAYS_INLINE static EncodedJSValue profiledMul(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, BinaryArithProfile& arithProfile, bool shouldObserveLHSAndRHSTypes = true)
     2751ALWAYS_INLINE static EncodedJSValue profiledMul(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, ArithProfile& arithProfile, bool shouldObserveLHSAndRHSTypes = true)
    27522752{
    27532753    VM& vm = globalObject->vm();
     
    27902790
    27912791    auto nonOptimizeVariant = operationValueMulNoOptimize;
    2792     if (BinaryArithProfile* arithProfile = mulIC->arithProfile())
     2792    if (ArithProfile* arithProfile = mulIC->arithProfile())
    27932793        arithProfile->observeLHSAndRHS(JSValue::decode(encodedOp1), JSValue::decode(encodedOp2));
    27942794    mulIC->generateOutOfLine(callFrame->codeBlock(), nonOptimizeVariant);
     
    28012801}
    28022802
    2803 EncodedJSValue JIT_OPERATION operationValueMulProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, BinaryArithProfile* arithProfile)
     2803EncodedJSValue JIT_OPERATION operationValueMulProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, ArithProfile* arithProfile)
    28042804{
    28052805    VM& vm = globalObject->vm();
     
    28172817    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    28182818
    2819     BinaryArithProfile* arithProfile = mulIC->arithProfile();
     2819    ArithProfile* arithProfile = mulIC->arithProfile();
    28202820    ASSERT(arithProfile);
    28212821    arithProfile->observeLHSAndRHS(JSValue::decode(encodedOp1), JSValue::decode(encodedOp2));
     
    28362836    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    28372837
    2838     BinaryArithProfile* arithProfile = mulIC->arithProfile();
     2838    ArithProfile* arithProfile = mulIC->arithProfile();
    28392839    ASSERT(arithProfile);
    28402840    return profiledMul(globalObject, encodedOp1, encodedOp2, *arithProfile);
     
    28622862}
    28632863
    2864 EncodedJSValue JIT_OPERATION operationArithNegateProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOperand, UnaryArithProfile* arithProfile)
     2864EncodedJSValue JIT_OPERATION operationArithNegateProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOperand, ArithProfile* arithProfile)
    28652865{
    28662866    ASSERT(arithProfile);
     
    28712871
    28722872    JSValue operand = JSValue::decode(encodedOperand);
    2873     arithProfile->observeArg(operand);
     2873    arithProfile->observeLHS(operand);
    28742874
    28752875    JSValue primValue = operand.toPrimitive(globalObject);
     
    28992899    JSValue operand = JSValue::decode(encodedOperand);
    29002900
    2901     UnaryArithProfile* arithProfile = negIC->arithProfile();
     2901    ArithProfile* arithProfile = negIC->arithProfile();
    29022902    ASSERT(arithProfile);
    2903     arithProfile->observeArg(operand);
     2903    arithProfile->observeLHS(operand);
    29042904    negIC->generateOutOfLine(callFrame->codeBlock(), operationArithNegateProfiled);
    29052905
     
    29332933    JSValue operand = JSValue::decode(encodedOperand);
    29342934
    2935     if (UnaryArithProfile* arithProfile = negIC->arithProfile())
    2936         arithProfile->observeArg(operand);
     2935    if (ArithProfile* arithProfile = negIC->arithProfile())
     2936        arithProfile->observeLHS(operand);
    29372937    negIC->generateOutOfLine(callFrame->codeBlock(), operationArithNegate);
    29382938
     
    29602960}
    29612961
    2962 ALWAYS_INLINE static EncodedJSValue profiledSub(VM& vm, JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, BinaryArithProfile& arithProfile, bool shouldObserveLHSAndRHSTypes = true)
     2962ALWAYS_INLINE static EncodedJSValue profiledSub(VM& vm, JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, ArithProfile& arithProfile, bool shouldObserveLHSAndRHSTypes = true)
    29632963{
    29642964    auto scope = DECLARE_THROW_SCOPE(vm);
     
    29842984}
    29852985
    2986 EncodedJSValue JIT_OPERATION operationValueSubProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, BinaryArithProfile* arithProfile)
     2986EncodedJSValue JIT_OPERATION operationValueSubProfiled(JSGlobalObject* globalObject, EncodedJSValue encodedOp1, EncodedJSValue encodedOp2, ArithProfile* arithProfile)
    29872987{
    29882988    ASSERT(arithProfile);
     
    30023002
    30033003    auto nonOptimizeVariant = operationValueSubNoOptimize;
    3004     if (BinaryArithProfile* arithProfile = subIC->arithProfile())
     3004    if (ArithProfile* arithProfile = subIC->arithProfile())
    30053005        arithProfile->observeLHSAndRHS(JSValue::decode(encodedOp1), JSValue::decode(encodedOp2));
    30063006    subIC->generateOutOfLine(callFrame->codeBlock(), nonOptimizeVariant);
     
    30283028    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    30293029
    3030     BinaryArithProfile* arithProfile = subIC->arithProfile();
     3030    ArithProfile* arithProfile = subIC->arithProfile();
    30313031    ASSERT(arithProfile);
    30323032    arithProfile->observeLHSAndRHS(JSValue::decode(encodedOp1), JSValue::decode(encodedOp2));
     
    30473047    JITOperationPrologueCallFrameTracer tracer(vm, callFrame);
    30483048
    3049     BinaryArithProfile* arithProfile = subIC->arithProfile();
     3049    ArithProfile* arithProfile = subIC->arithProfile();
    30503050    ASSERT(arithProfile);
    30513051    return profiledSub(vm, globalObject, encodedOp1, encodedOp2, *arithProfile);
Note: See TracChangeset for help on using the changeset viewer.