Ignore:
Timestamp:
May 8, 2014, 12:07:45 PM (11 years ago)
Author:
[email protected]
Message:

SSA conversion should delete PhantomLocals for captured variables
https://bugs.webkit.org/show_bug.cgi?id=132693

Reviewed by Mark Hahnenberg.

  • dfg/DFGCommon.cpp:

(JSC::DFG::startCrashing): Parallel JIT and a JIT bug means that we man dump IR in parallel. This is the workaround. This patch uses it in all of the places where we dump IR and crash.

  • dfg/DFGCommon.h:
  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::injectTypeConversionsForEdge): Use the workaround.

  • dfg/DFGLivenessAnalysisPhase.cpp:

(JSC::DFG::LivenessAnalysisPhase::run): Use the workaround.

  • dfg/DFGSSAConversionPhase.cpp:

(JSC::DFG::SSAConversionPhase::run): Fix the bug - it's true that PhantomLocal for captured variables doesn't need anything done to it, but it's wrong that we didn't delete it outright.

  • dfg/DFGValidate.cpp: Use the workaround.
  • tests/stress/phantom-local-captured-but-not-flushed-to-ssa.js: Added.

(foo):
(bar):

File:
1 edited

Legend:

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

    r167325 r168480  
    4646    #define VALIDATE(context, assertion) do { \
    4747        if (!(assertion)) { \
     48            startCrashing(); \
    4849            dataLogF("\n\n\nAt "); \
    4950            reportValidationContext context; \
     
    5758    #define V_EQUAL(context, left, right) do { \
    5859        if (left != right) { \
     60            startCrashing(); \
    5961            dataLogF("\n\n\nAt "); \
    6062            reportValidationContext context; \
Note: See TracChangeset for help on using the changeset viewer.