Title: [176771] trunk/Source/_javascript_Core
Revision
176771
Author
[email protected]
Date
2014-12-03 17:59:40 -0800 (Wed, 03 Dec 2014)

Log Message

REGRESSION (r176479): DFG ASSERTION beneath emitOSRExitCall running Kraken/imaging-gaussian-blur.js.ftl-no-cjit-osr-validation and other tests
https://bugs.webkit.org/show_bug.cgi?id=139246

Reviewed by Geoffrey Garen.

* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::buildExitArguments):
The DFG_ASSERT that checks liveness at exit time doesn't properly
handle the case where the local is not available at OSR exit time,
but the local is live in the bytecode.  This now happens with the
allocated scope register when we are compiling for FTLForOSREntryMode
due to DCE done when the control flow was changed and a new entrypoint
was added in the OSR entrypoint creation phase.  Therefore we silence
the assert when compiling for FTLForOSREntryMode.

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (176770 => 176771)


--- trunk/Source/_javascript_Core/ChangeLog	2014-12-04 01:40:21 UTC (rev 176770)
+++ trunk/Source/_javascript_Core/ChangeLog	2014-12-04 01:59:40 UTC (rev 176771)
@@ -1,3 +1,20 @@
+2014-12-03  Michael Saboff  <[email protected]>
+
+        REGRESSION (r176479): DFG ASSERTION beneath emitOSRExitCall running Kraken/imaging-gaussian-blur.js.ftl-no-cjit-osr-validation and other tests
+        https://bugs.webkit.org/show_bug.cgi?id=139246
+
+        Reviewed by Geoffrey Garen.
+
+        * ftl/FTLLowerDFGToLLVM.cpp:
+        (JSC::FTL::LowerDFGToLLVM::buildExitArguments):
+        The DFG_ASSERT that checks liveness at exit time doesn't properly
+        handle the case where the local is not available at OSR exit time,
+        but the local is live in the bytecode.  This now happens with the
+        allocated scope register when we are compiling for FTLForOSREntryMode
+        due to DCE done when the control flow was changed and a new entrypoint
+        was added in the OSR entrypoint creation phase.  Therefore we silence
+        the assert when compiling for FTLForOSREntryMode.
+
 2014-12-03  Geoffrey Garen  <[email protected]>
 
         Removed the global parser arena

Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp (176770 => 176771)


--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp	2014-12-04 01:40:21 UTC (rev 176770)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp	2014-12-04 01:59:40 UTC (rev 176771)
@@ -6559,7 +6559,7 @@
             if (Options::validateFTLOSRExitLiveness()) {
                 DFG_ASSERT(
                     m_graph, m_node,
-                    !(availability.isDead() && m_graph.isLiveInBytecode(VirtualRegister(operand), codeOrigin)));
+                    (!(availability.isDead() && m_graph.isLiveInBytecode(VirtualRegister(operand), codeOrigin))) || m_graph.m_plan.mode == FTLForOSREntryMode);
             }
             
             exit.m_values[i] = exitValueForAvailability(arguments, map, availability);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to