⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 259742 in webkit


Ignore:
Timestamp:
Apr 8, 2020, 12:06:39 PM (6 years ago)
Author:
ysuzuki@apple.com
Message:

[JSC] MultiDeleteByOffset should tell correct result AbstractValue in AI
https://bugs.webkit.org/show_bug.cgi?id=210175
<rdar://problem/61433817>

Reviewed by Saam Barati.

JSTests:

  • stress/multi-delete-by-offset-ai-result.js: Added.

(foo):

Source/JavaScriptCore:

Since the result value of MultiDeleteByOffset should be used, AI should set boolean AbstractValue as a result of MultiDeleteByOffset.
We also add MultiDeleteByOffset to DFGStoreBarrierInsertionPhase since it can write StructureID: this means that write-barrier is necessary.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGStoreBarrierInsertionPhase.cpp:
Location:
trunk
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/JSTests/ChangeLog

    r259683 r259742  
     12020-04-08  Yusuke Suzuki  <ysuzuki@apple.com>
     2
     3        [JSC] MultiDeleteByOffset should tell correct result AbstractValue in AI
     4        https://bugs.webkit.org/show_bug.cgi?id=210175
     5        <rdar://problem/61433817>
     6
     7        Reviewed by Saam Barati.
     8
     9        * stress/multi-delete-by-offset-ai-result.js: Added.
     10        (foo):
     11
    1122020-04-07  Yusuke Suzuki  <ysuzuki@apple.com>
    213
  • trunk/Source/JavaScriptCore/ChangeLog

    r259734 r259742  
     12020-04-08  Yusuke Suzuki  <ysuzuki@apple.com>
     2
     3        [JSC] MultiDeleteByOffset should tell correct result AbstractValue in AI
     4        https://bugs.webkit.org/show_bug.cgi?id=210175
     5        <rdar://problem/61433817>
     6
     7        Reviewed by Saam Barati.
     8
     9        Since the result value of MultiDeleteByOffset should be used, AI should set boolean AbstractValue as a result of MultiDeleteByOffset.
     10        We also add MultiDeleteByOffset to DFGStoreBarrierInsertionPhase since it can write StructureID: this means that write-barrier is necessary.
     11
     12        * dfg/DFGAbstractInterpreterInlines.h:
     13        (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
     14        * dfg/DFGStoreBarrierInsertionPhase.cpp:
     15
    1162020-04-08  Angelos Oikonomopoulos  <angelos@igalia.com>
    217
  • trunk/Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h

    r259676 r259742  
    37443744        if (forNode(node->child1()).changeStructure(m_graph, newSet) == Contradiction)
    37453745            m_state.setIsValid(false);
     3746        setNonCellTypeForNode(node, SpecBoolean);
    37463747        break;
    37473748    }
  • trunk/Source/JavaScriptCore/dfg/DFGStoreBarrierInsertionPhase.cpp

    r258887 r259742  
    298298            }
    299299               
    300             case MultiPutByOffset: {
     300            case MultiPutByOffset:
     301            case MultiDeleteByOffset: {
    301302                considerBarrier(m_node->child1());
    302303                break;
Note: See TracChangeset for help on using the changeset viewer.