[webkit-changes] [180317] trunk/Source/JavaScriptCore
Geoffrey Garen
ggaren at apple.com
Wed Feb 18 15:54:33 PST 2015
If there’s something incorrect or incomplete about this change, and/or if it’s gone from TOT, I don’t agree that we should commit it to the branch.
Have we committed the change to the branch?
Is there still a Radar proposing committing the change to the branch?
Geoff
> On Feb 18, 2015, at 3:52 PM, msaboff at apple.com wrote:
>
> Revision
> 180317 <http://trac.webkit.org/projects/webkit/changeset/180317>Author
> msaboff at apple.com <mailto:msaboff at apple.com>Date
> 2015-02-18 15:52:16 -0800 (Wed, 18 Feb 2015)
> Log Message
>
> Rollout r180247 <http://trac.webkit.org/projects/webkit/changeset/180247> & r180249 <http://trac.webkit.org/projects/webkit/changeset/180249> from trunk
> https://bugs.webkit.org/show_bug.cgi?id=141773 <https://bugs.webkit.org/show_bug.cgi?id=141773>
>
> Reviewed by Filip Pizlo.
>
> Theses changes makes sense to fix the crash reported in https://bugs.webkit.org/show_bug.cgi?id=141730 <https://bugs.webkit.org/show_bug.cgi?id=141730>
> only for branches. The change to fail the FTL compile but continue running is not comprehensive
> enough for general use on trunk.
>
> * dfg/DFGPlan.cpp:
> (JSC::DFG::Plan::compileInThreadImpl):
> * ftl/FTLLowerDFGToLLVM.cpp:
> (JSC::FTL::LowerDFGToLLVM::LowerDFGToLLVM):
> (JSC::FTL::LowerDFGToLLVM::lower):
> (JSC::FTL::LowerDFGToLLVM::createPhiVariables):
> (JSC::FTL::LowerDFGToLLVM::compileNode):
> (JSC::FTL::LowerDFGToLLVM::compileUpsilon):
> (JSC::FTL::LowerDFGToLLVM::compilePhi):
> (JSC::FTL::LowerDFGToLLVM::compileDoubleRep):
> (JSC::FTL::LowerDFGToLLVM::compileValueRep):
> (JSC::FTL::LowerDFGToLLVM::compileValueToInt32):
> (JSC::FTL::LowerDFGToLLVM::compilePutLocal):
> (JSC::FTL::LowerDFGToLLVM::compileArithAddOrSub):
> (JSC::FTL::LowerDFGToLLVM::compileArithMul):
> (JSC::FTL::LowerDFGToLLVM::compileArithDiv):
> (JSC::FTL::LowerDFGToLLVM::compileArithMod):
> (JSC::FTL::LowerDFGToLLVM::compileArithMinOrMax):
> (JSC::FTL::LowerDFGToLLVM::compileArithAbs):
> (JSC::FTL::LowerDFGToLLVM::compileArithNegate):
> (JSC::FTL::LowerDFGToLLVM::compileArrayifyToStructure):
> (JSC::FTL::LowerDFGToLLVM::compileGetById):
> (JSC::FTL::LowerDFGToLLVM::compileGetMyArgumentByVal):
> (JSC::FTL::LowerDFGToLLVM::compileGetArrayLength):
> (JSC::FTL::LowerDFGToLLVM::compileGetByVal):
> (JSC::FTL::LowerDFGToLLVM::compilePutByVal):
> (JSC::FTL::LowerDFGToLLVM::compileArrayPush):
> (JSC::FTL::LowerDFGToLLVM::compileArrayPop):
> (JSC::FTL::LowerDFGToLLVM::compileNewArray):
> (JSC::FTL::LowerDFGToLLVM::compileToString):
> (JSC::FTL::LowerDFGToLLVM::compileMakeRope):
> (JSC::FTL::LowerDFGToLLVM::compileCompareEq):
> (JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq):
> (JSC::FTL::LowerDFGToLLVM::compileSwitch):
> (JSC::FTL::LowerDFGToLLVM::compare):
> (JSC::FTL::LowerDFGToLLVM::boolify):
> (JSC::FTL::LowerDFGToLLVM::opposite):
> (JSC::FTL::LowerDFGToLLVM::lowJSValue):
> (JSC::FTL::LowerDFGToLLVM::speculate):
> (JSC::FTL::LowerDFGToLLVM::isArrayType):
> (JSC::FTL::LowerDFGToLLVM::exitValueForAvailability):
> (JSC::FTL::LowerDFGToLLVM::exitValueForNode):
> (JSC::FTL::LowerDFGToLLVM::setInt52):
> (JSC::FTL::lowerDFGToLLVM):
> (JSC::FTL::LowerDFGToLLVM::loweringFailed): Deleted.
> * ftl/FTLLowerDFGToLLVM.h:
> Modified Paths
>
> trunk/Source/JavaScriptCore/ChangeLog <x-msg://9/#trunkSourceJavaScriptCoreChangeLog>
> trunk/Source/JavaScriptCore/dfg/DFGPlan.cpp <x-msg://9/#trunkSourceJavaScriptCoredfgDFGPlancpp>
> trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp <x-msg://9/#trunkSourceJavaScriptCoreftlFTLLowerDFGToLLVMcpp>
> trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.h <x-msg://9/#trunkSourceJavaScriptCoreftlFTLLowerDFGToLLVMh>
> Diff
>
> <>Modified: trunk/Source/JavaScriptCore/ChangeLog (180316 => 180317)
>
> --- trunk/Source/JavaScriptCore/ChangeLog 2015-02-18 23:50:12 UTC (rev 180316)
> +++ trunk/Source/JavaScriptCore/ChangeLog 2015-02-18 23:52:16 UTC (rev 180317)
> @@ -1,3 +1,61 @@
> +2015-02-18 Michael Saboff <msaboff at apple.com <mailto:msaboff at apple.com>>
> +
> + Rollout r180247 & r180249 from trunk
> + https://bugs.webkit.org/show_bug.cgi?id=141773 <https://bugs.webkit.org/show_bug.cgi?id=141773>
> +
> + Reviewed by Filip Pizlo.
> +
> + Theses changes makes sense to fix the crash reported in https://bugs.webkit.org/show_bug.cgi?id=141730 <https://bugs.webkit.org/show_bug.cgi?id=141730>
> + only for branches. The change to fail the FTL compile but continue running is not comprehensive
> + enough for general use on trunk.
> +
> + * dfg/DFGPlan.cpp:
> + (JSC::DFG::Plan::compileInThreadImpl):
> + * ftl/FTLLowerDFGToLLVM.cpp:
> + (JSC::FTL::LowerDFGToLLVM::LowerDFGToLLVM):
> + (JSC::FTL::LowerDFGToLLVM::lower):
> + (JSC::FTL::LowerDFGToLLVM::createPhiVariables):
> + (JSC::FTL::LowerDFGToLLVM::compileNode):
> + (JSC::FTL::LowerDFGToLLVM::compileUpsilon):
> + (JSC::FTL::LowerDFGToLLVM::compilePhi):
> + (JSC::FTL::LowerDFGToLLVM::compileDoubleRep):
> + (JSC::FTL::LowerDFGToLLVM::compileValueRep):
> + (JSC::FTL::LowerDFGToLLVM::compileValueToInt32):
> + (JSC::FTL::LowerDFGToLLVM::compilePutLocal):
> + (JSC::FTL::LowerDFGToLLVM::compileArithAddOrSub):
> + (JSC::FTL::LowerDFGToLLVM::compileArithMul):
> + (JSC::FTL::LowerDFGToLLVM::compileArithDiv):
> + (JSC::FTL::LowerDFGToLLVM::compileArithMod):
> + (JSC::FTL::LowerDFGToLLVM::compileArithMinOrMax):
> + (JSC::FTL::LowerDFGToLLVM::compileArithAbs):
> + (JSC::FTL::LowerDFGToLLVM::compileArithNegate):
> + (JSC::FTL::LowerDFGToLLVM::compileArrayifyToStructure):
> + (JSC::FTL::LowerDFGToLLVM::compileGetById):
> + (JSC::FTL::LowerDFGToLLVM::compileGetMyArgumentByVal):
> + (JSC::FTL::LowerDFGToLLVM::compileGetArrayLength):
> + (JSC::FTL::LowerDFGToLLVM::compileGetByVal):
> + (JSC::FTL::LowerDFGToLLVM::compilePutByVal):
> + (JSC::FTL::LowerDFGToLLVM::compileArrayPush):
> + (JSC::FTL::LowerDFGToLLVM::compileArrayPop):
> + (JSC::FTL::LowerDFGToLLVM::compileNewArray):
> + (JSC::FTL::LowerDFGToLLVM::compileToString):
> + (JSC::FTL::LowerDFGToLLVM::compileMakeRope):
> + (JSC::FTL::LowerDFGToLLVM::compileCompareEq):
> + (JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq):
> + (JSC::FTL::LowerDFGToLLVM::compileSwitch):
> + (JSC::FTL::LowerDFGToLLVM::compare):
> + (JSC::FTL::LowerDFGToLLVM::boolify):
> + (JSC::FTL::LowerDFGToLLVM::opposite):
> + (JSC::FTL::LowerDFGToLLVM::lowJSValue):
> + (JSC::FTL::LowerDFGToLLVM::speculate):
> + (JSC::FTL::LowerDFGToLLVM::isArrayType):
> + (JSC::FTL::LowerDFGToLLVM::exitValueForAvailability):
> + (JSC::FTL::LowerDFGToLLVM::exitValueForNode):
> + (JSC::FTL::LowerDFGToLLVM::setInt52):
> + (JSC::FTL::lowerDFGToLLVM):
> + (JSC::FTL::LowerDFGToLLVM::loweringFailed): Deleted.
> + * ftl/FTLLowerDFGToLLVM.h:
> +
> 2015-02-18 Filip Pizlo <fpizlo at apple.com <mailto:fpizlo at apple.com>>
>
> DFG should really support varargs
> <>Modified: trunk/Source/JavaScriptCore/dfg/DFGPlan.cpp (180316 => 180317)
>
> --- trunk/Source/JavaScriptCore/dfg/DFGPlan.cpp 2015-02-18 23:50:12 UTC (rev 180316)
> +++ trunk/Source/JavaScriptCore/dfg/DFGPlan.cpp 2015-02-18 23:52:16 UTC (rev 180317)
> @@ -386,10 +386,7 @@
> }
>
> FTL::State state(dfg);
> - if (!FTL::lowerDFGToLLVM(state)) {
> - FTL::fail(state);
> - return FTLPath;
> - }
> + FTL::lowerDFGToLLVM(state);
>
> if (reportCompileTimes())
> m_timeBeforeFTL = monotonicallyIncreasingTime();
> <>Modified: trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp (180316 => 180317)
>
> --- trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp 2015-02-18 23:50:12 UTC (rev 180316)
> +++ trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp 2015-02-18 23:52:16 UTC (rev 180317)
> @@ -93,7 +93,6 @@
> LowerDFGToLLVM(State& state)
> : m_graph(state.graph)
> , m_ftlState(state)
> - , m_loweringSucceeded(true)
> , m_heaps(state.context)
> , m_out(state.context)
> , m_state(state.graph)
> @@ -103,12 +102,8 @@
> , m_tbaaStructKind(mdKindID(state.context, "tbaa.struct"))
> {
> }
> -
> -
> -#define LOWERING_FAILED(node, reason) \
> - loweringFailed((node), __FILE__, __LINE__, WTF_PRETTY_FUNCTION, (reason));
> -
> - bool lower()
> +
> + void lower()
> {
> CString name;
> if (verboseCompilationEnabled()) {
> @@ -280,22 +275,14 @@
> case FlushedJSValue:
> break;
> default:
> - LOWERING_FAILED(node, "Bad flush format for argument");
> + DFG_CRASH(m_graph, node, "Bad flush format for argument");
> break;
> }
> }
> -
> - if (!m_loweringSucceeded)
> - return m_loweringSucceeded;
> -
> m_out.jump(lowBlock(m_graph.block(0)));
>
> - for (BasicBlock* block : preOrder) {
> + for (BasicBlock* block : preOrder)
> compileBlock(block);
> -
> - if (!m_loweringSucceeded)
> - return m_loweringSucceeded;
> - }
>
> if (Options::dumpLLVMIR())
> dumpModule(m_ftlState.module);
> @@ -304,8 +291,6 @@
> m_ftlState.dumpState("after lowering");
> if (validationEnabled())
> verifyModule(m_ftlState.module);
> -
> - return m_loweringSucceeded;
> }
>
> private:
> @@ -338,8 +323,8 @@
> type = m_out.int64;
> break;
> default:
> - LOWERING_FAILED(node, "Bad Phi node result type");
> - return;
> + DFG_CRASH(m_graph, node, "Bad Phi node result type");
> + break;
> }
> m_phis.add(node, buildAlloca(m_out.m_builder, type));
> }
> @@ -843,13 +828,10 @@
> case KillLocal:
> break;
> default:
> - LOWERING_FAILED(m_node, "Unrecognized node in FTL backend");
> + DFG_CRASH(m_graph, m_node, "Unrecognized node in FTL backend");
> break;
> }
>
> - if (!m_loweringSucceeded)
> - return false;
> -
> if (!m_state.isValid()) {
> safelyInvalidateAfterTermination();
> return false;
> @@ -885,7 +867,7 @@
> m_out.set(lowJSValue(m_node->child1()), destination);
> break;
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> break;
> }
> }
> @@ -911,7 +893,7 @@
> setJSValue(m_out.get(source));
> break;
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> break;
> }
> }
> @@ -949,7 +931,7 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> }
> }
>
> @@ -974,7 +956,7 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> }
> }
>
> @@ -1037,7 +1019,7 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> break;
> }
> }
> @@ -1144,7 +1126,7 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad flush format");
> + DFG_CRASH(m_graph, m_node, "Bad flush format");
> break;
> }
> }
> @@ -1304,7 +1286,7 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> break;
> }
> }
> @@ -1378,7 +1360,7 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> break;
> }
> }
> @@ -1481,7 +1463,7 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> break;
> }
> }
> @@ -1579,7 +1561,7 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> break;
> }
> }
> @@ -1630,7 +1612,7 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> break;
> }
> }
> @@ -1656,7 +1638,7 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> break;
> }
> }
> @@ -1781,7 +1763,7 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> break;
> }
> }
> @@ -1919,8 +1901,8 @@
> vmCall(m_out.operation(operationEnsureArrayStorage), m_callFrame, cell);
> break;
> default:
> - LOWERING_FAILED(m_node, "Bad array type");
> - return;
> + DFG_CRASH(m_graph, m_node, "Bad array type");
> + break;
> }
>
> structureID = m_out.load32(cell, m_heaps.JSCell_structureID);
> @@ -1988,7 +1970,7 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> return;
> }
> }
> @@ -2160,8 +2142,7 @@
> // FIXME: FTL should support activations.
> // https://bugs.webkit.org/show_bug.cgi?id=129576 <https://bugs.webkit.org/show_bug.cgi?id=129576>
>
> - LOWERING_FAILED(m_node, "Unimplemented");
> - return;
> + DFG_CRASH(m_graph, m_node, "Unimplemented");
> }
>
> TypedPointer base;
> @@ -2207,7 +2188,7 @@
> return;
> }
>
> - LOWERING_FAILED(m_node, "Bad array type");
> + DFG_CRASH(m_graph, m_node, "Bad array type");
> return;
> }
> }
> @@ -2357,8 +2338,7 @@
> result = m_out.load32(pointer);
> break;
> default:
> - LOWERING_FAILED(m_node, "Bad element size");
> - return;
> + DFG_CRASH(m_graph, m_node, "Bad element size");
> }
>
> if (elementSize(type) < 4) {
> @@ -2402,15 +2382,14 @@
> result = m_out.loadDouble(pointer);
> break;
> default:
> - LOWERING_FAILED(m_node, "Bad typed array type");
> - return;
> + DFG_CRASH(m_graph, m_node, "Bad typed array type");
> }
>
> setDouble(result);
> return;
> }
>
> - LOWERING_FAILED(m_node, "Bad array type");
> + DFG_CRASH(m_graph, m_node, "Bad array type");
> return;
> } }
> }
> @@ -2514,10 +2493,9 @@
> m_out.storeDouble(value, elementPointer);
> break;
> }
> -
> +
> default:
> - LOWERING_FAILED(m_node, "Bad array type");
> - return;
> + DFG_CRASH(m_graph, m_node, "Bad array type");
> }
>
> m_out.jump(continuation);
> @@ -2610,8 +2588,7 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> - return;
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> }
>
> switch (elementSize(type)) {
> @@ -2628,8 +2605,7 @@
> refType = m_out.ref32;
> break;
> default:
> - LOWERING_FAILED(m_node, "Bad element size");
> - return;
> + DFG_CRASH(m_graph, m_node, "Bad element size");
> }
> } else /* !isInt(type) */ {
> LValue value = lowDouble(child3);
> @@ -2643,8 +2619,7 @@
> refType = m_out.refDouble;
> break;
> default:
> - LOWERING_FAILED(m_node, "Bad typed array type");
> - return;
> + DFG_CRASH(m_graph, m_node, "Bad typed array type");
> }
> }
>
> @@ -2668,8 +2643,8 @@
> return;
> }
>
> - LOWERING_FAILED(m_node, "Bad array type");
> - return;
> + DFG_CRASH(m_graph, m_node, "Bad array type");
> + break;
> }
> }
>
> @@ -2740,7 +2715,7 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad array type");
> + DFG_CRASH(m_graph, m_node, "Bad array type");
> return;
> }
> }
> @@ -2798,7 +2773,7 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad array type");
> + DFG_CRASH(m_graph, m_node, "Bad array type");
> return;
> }
> }
> @@ -2835,8 +2810,8 @@
> switch (m_node->indexingType()) {
> case ALL_BLANK_INDEXING_TYPES:
> case ALL_UNDECIDED_INDEXING_TYPES:
> - LOWERING_FAILED(m_node, "Bad indexing type");
> - return;
> + DFG_CRASH(m_graph, m_node, "Bad indexing type");
> + break;
>
> case ALL_DOUBLE_INDEXING_TYPES:
> m_out.storeDouble(
> @@ -2853,8 +2828,8 @@
> break;
>
> default:
> - LOWERING_FAILED(m_node, "Corrupt indexing type");
> - return;
> + DFG_CRASH(m_graph, m_node, "Corrupt indexing type");
> + break;
> }
> }
>
> @@ -3135,8 +3110,8 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> - return;
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> + break;
> }
> }
>
> @@ -3227,8 +3202,8 @@
> m_out.operation(operationMakeRope3), m_callFrame, kids[0], kids[1], kids[2]));
> break;
> default:
> - LOWERING_FAILED(m_node, "Bad number of children");
> - return;
> + DFG_CRASH(m_graph, m_node, "Bad number of children");
> + break;
> }
> m_out.jump(continuation);
>
> @@ -3648,8 +3623,8 @@
> nonSpeculativeCompare(LLVMIntEQ, operationCompareEq);
> return;
> }
> -
> - LOWERING_FAILED(m_node, "Bad use kinds");
> +
> + DFG_CRASH(m_graph, m_node, "Bad use kinds");
> }
>
> void compileCompareEqConstant()
> @@ -3742,7 +3717,7 @@
> return;
> }
>
> - LOWERING_FAILED(m_node, "Bad use kinds");
> + DFG_CRASH(m_graph, m_node, "Bad use kinds");
> }
>
> void compileCompareStrictEqConstant()
> @@ -4009,8 +3984,8 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> - return;
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> + break;
> }
>
> m_out.appendTo(switchOnInts, lastNext);
> @@ -4055,8 +4030,8 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> - return;
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> + break;
> }
>
> LBasicBlock lengthIs1 = FTL_NEW_BLOCK(m_out, ("Switch/SwitchChar length is 1"));
> @@ -4108,7 +4083,7 @@
> }
>
> case SwitchString: {
> - LOWERING_FAILED(m_node, "Unimplemented");
> + DFG_CRASH(m_graph, m_node, "Unimplemented");
> return;
> }
>
> @@ -4131,7 +4106,7 @@
> }
>
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> return;
> }
>
> @@ -4139,7 +4114,7 @@
> return;
> } }
>
> - LOWERING_FAILED(m_node, "Bad switch kind");
> + DFG_CRASH(m_graph, m_node, "Bad switch kind");
> }
>
> void compileReturn()
> @@ -5109,7 +5084,7 @@
> return;
> }
>
> - LOWERING_FAILED(m_node, "Bad use kinds");
> + DFG_CRASH(m_graph, m_node, "Bad use kinds");
> }
>
> void compareEqObjectOrOtherToObject(Edge leftChild, Edge rightChild)
> @@ -5422,7 +5397,7 @@
> return m_out.phi(m_out.boolean, fastResult, slowResult);
> }
> default:
> - LOWERING_FAILED(m_node, "Bad use kind");
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> return 0;
> }
> }
> @@ -5801,7 +5776,7 @@
> case StrictInt52:
> return Int52;
> }
> - LOWERING_FAILED(m_node, "Bad use kind");
> + DFG_CRASH(m_graph, m_node, "Bad use kind");
> return Int52;
> }
>
> @@ -5945,7 +5920,7 @@
> return result;
> }
>
> - LOWERING_FAILED(m_node, "Value not defined");
> + DFG_CRASH(m_graph, m_node, "Value not defined");
> return 0;
> }
>
> @@ -6260,8 +6235,7 @@
> speculateMisc(edge);
> break;
> default:
> - LOWERING_FAILED(m_node, "Unsupported speculation use kind");
> - return;
> + DFG_CRASH(m_graph, m_node, "Unsupported speculation use kind");
> }
> }
>
> @@ -6322,7 +6296,7 @@
>
> switch (arrayMode.arrayClass()) {
> case Array::OriginalArray:
> - LOWERING_FAILED(m_node, "Unexpected original array");
> + DFG_CRASH(m_graph, m_node, "Unexpected original array");
> return 0;
>
> case Array::Array:
> @@ -6342,8 +6316,7 @@
> m_out.constInt8(arrayMode.shapeMask()));
> }
>
> - LOWERING_FAILED(m_node, "Corrupt array class");
> - return 0;
> + DFG_CRASH(m_graph, m_node, "Corrupt array class");
> }
>
> default:
> @@ -6853,7 +6826,7 @@
> return ExitValue::argumentsObjectThatWasNotCreated();
> }
>
> - LOWERING_FAILED(m_node, "Invalid flush format");
> + DFG_CRASH(m_graph, m_node, "Invalid flush format");
> return ExitValue::dead();
> }
>
> @@ -6926,7 +6899,7 @@
> if (isValid(value))
> return exitArgument(arguments, ValueFormatDouble, value.value());
>
> - LOWERING_FAILED(m_node, toCString("Cannot find value for node: ", node).data());
> + DFG_CRASH(m_graph, m_node, toCString("Cannot find value for node: ", node).data());
> return ExitValue::dead();
> }
>
> @@ -6984,7 +6957,7 @@
> return;
> }
>
> - LOWERING_FAILED(m_node, "Corrupt int52 kind");
> + DFG_CRASH(m_graph, m_node, "Corrupt int52 kind");
> }
> void setJSValue(Node* node, LValue value)
> {
> @@ -7139,20 +7112,6 @@
> m_out.unreachable();
> }
>
> - NO_RETURN_DUE_TO_ASSERT void loweringFailed(Node* node, const char* file, int line, const char* function, const char* assertion)
> - {
> -#ifndef NDEBUG
> - m_graph.handleAssertionFailure(node, file, line, function, (assertion));
> -#else
> - UNUSED_PARAM(node);
> - UNUSED_PARAM(file);
> - UNUSED_PARAM(line);
> - UNUSED_PARAM(function);
> - UNUSED_PARAM(assertion);
> -#endif
> - m_loweringSucceeded = false;
> - }
> -
> AvailabilityMap& availabilityMap() { return m_availabilityCalculator.m_availability; }
>
> VM& vm() { return m_graph.m_vm; }
> @@ -7160,7 +7119,6 @@
>
> Graph& m_graph;
> State& m_ftlState;
> - bool m_loweringSucceeded;
> AbstractHeapRepository m_heaps;
> Output m_out;
>
> @@ -7208,14 +7166,12 @@
> uint32_t m_stackmapIDs;
> unsigned m_tbaaKind;
> unsigned m_tbaaStructKind;
> -
> -#undef LOWERING_FAILED
> };
>
> -bool lowerDFGToLLVM(State& state)
> +void lowerDFGToLLVM(State& state)
> {
> LowerDFGToLLVM lowering(state);
> - return lowering.lower();
> + lowering.lower();
> }
>
> } } // namespace JSC::FTL
> <>Modified: trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.h (180316 => 180317)
>
> --- trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.h 2015-02-18 23:50:12 UTC (rev 180316)
> +++ trunk/Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.h 2015-02-18 23:52:16 UTC (rev 180317)
> @@ -33,7 +33,7 @@
>
> namespace JSC { namespace FTL {
>
> -bool lowerDFGToLLVM(State&);
> +void lowerDFGToLLVM(State&);
>
> } } // namespace JSC::FTL
>
> _______________________________________________
> webkit-changes mailing list
> webkit-changes at lists.webkit.org <mailto:webkit-changes at lists.webkit.org>
> https://lists.webkit.org/mailman/listinfo/webkit-changes <https://lists.webkit.org/mailman/listinfo/webkit-changes>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.webkit.org/pipermail/webkit-changes/attachments/20150218/ac3483d8/attachment-0001.html>
More information about the webkit-changes
mailing list