Ignore:
Timestamp:
Sep 7, 2013, 9:08:01 PM (12 years ago)
Author:
[email protected]
Message:

FTL should support typed array PutByVal
https://bugs.webkit.org/show_bug.cgi?id=120972

Reviewed by Oliver Hunt.

Due to increased FTL coverage, this revealed a bug in LICM where we were trying to
have AI execute the tail of a block that !cfaDidFinish. We don't need to execute AI
for such blocks since LICM will bail for them anyway, and AI asserts that cfaDidFinish
is true.

  • dfg/DFGLICMPhase.cpp:

(JSC::DFG::LICMPhase::attemptHoist):

  • ftl/FTLAbbreviations.h:

(JSC::FTL::buildFPToUI):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compilePutByVal):
(JSC::FTL::LowerDFGToLLVM::doubleToInt32):
(JSC::FTL::LowerDFGToLLVM::doubleToUInt32):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::fpToUInt):
(JSC::FTL::Output::fpToUInt32):
(JSC::FTL::Output::store8):
(JSC::FTL::Output::store16):
(JSC::FTL::Output::storeFloat):

File:
1 edited

Legend:

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

    r153295 r155281  
    245245                continue;
    246246            BasicBlock* subPreHeader = m_data[subLoop->index()].preHeader;
     247            if (!subPreHeader->cfaDidFinish)
     248                continue;
    247249            m_state.initializeTo(subPreHeader);
    248250            m_interpreter.execute(node);
Note: See TracChangeset for help on using the changeset viewer.