Ignore:
Timestamp:
Sep 10, 2013, 2:55:45 PM (12 years ago)
Author:
[email protected]
Message:

Introduce a SpecInt48 type and be more careful about what we mean by "Top"
https://bugs.webkit.org/show_bug.cgi?id=121116

Reviewed by Oliver Hunt.

SpecInt48 will mean that we have something that would be a double if it was a JSValue,
but it's profitable to represent it as something other than a double.

SpecInt48AsDouble means that it has a value that could have been represented like
SpecInt48, but we're making a heuristic decision not to do it.

  • bytecode/SpeculatedType.h:

(JSC::isInt48Speculation):

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::::executeEffects):
(JSC::DFG::::clobberCapturedVars):

  • dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::filter):

  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::makeHeapTop):
(JSC::DFG::AbstractValue::makeBytecodeTop):
(JSC::DFG::AbstractValue::isHeapTop):
(JSC::DFG::AbstractValue::heapTop):
(JSC::DFG::AbstractValue::validateType):
(JSC::DFG::AbstractValue::validate):
(JSC::DFG::AbstractValue::makeTop):

  • dfg/DFGInPlaceAbstractState.cpp:

(JSC::DFG::InPlaceAbstractState::initialize):

  • dfg/DFGJITCompiler.h:

(JSC::DFG::JITCompiler::noticeOSREntry):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/dfg/DFGAbstractValue.cpp

    r153296 r155480  
    126126FiltrationResult AbstractValue::filter(SpeculatedType type)
    127127{
    128     if (isClear())
     128    if ((m_type & type) == m_type)
    129129        return FiltrationOK;
    130    
    131     if (type == SpecTop)
    132         return isClear() ? Contradiction : FiltrationOK;
    133130   
    134131    m_type &= type;
Note: See TracChangeset for help on using the changeset viewer.