Diff
Modified: branches/safari-601.1.32.2-branch/Source/_javascript_Core/ChangeLog (184498 => 184499)
--- branches/safari-601.1.32.2-branch/Source/_javascript_Core/ChangeLog 2015-05-18 17:01:19 UTC (rev 184498)
+++ branches/safari-601.1.32.2-branch/Source/_javascript_Core/ChangeLog 2015-05-18 17:01:29 UTC (rev 184499)
@@ -1,5 +1,48 @@
2015-05-18 Matthew Hanson <[email protected]>
+ Merge r184368. rdar://problem/20979071
+
+ 2015-05-14 Filip Pizlo <[email protected]>
+
+ Remove StoreBarrierWithNullCheck, nobody ever generates this.
+
+ Rubber stamped by Benjamin Poulain and Michael Saboff.
+
+ If we did bring something like this back in the future, we would just use UntypedUse instead
+ of CellUse to indicate that this is what we want.
+
+ * dfg/DFGAbstractInterpreterInlines.h:
+ (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
+ * dfg/DFGClobberize.h:
+ (JSC::DFG::clobberize):
+ * dfg/DFGDoesGC.cpp:
+ (JSC::DFG::doesGC):
+ * dfg/DFGFixupPhase.cpp:
+ (JSC::DFG::FixupPhase::fixupNode):
+ * dfg/DFGNode.h:
+ (JSC::DFG::Node::isStoreBarrier):
+ * dfg/DFGNodeType.h:
+ * dfg/DFGObjectAllocationSinkingPhase.cpp:
+ (JSC::DFG::ObjectAllocationSinkingPhase::lowerNonReadingOperationsOnPhantomAllocations):
+ (JSC::DFG::ObjectAllocationSinkingPhase::handleNode):
+ * dfg/DFGPredictionPropagationPhase.cpp:
+ (JSC::DFG::PredictionPropagationPhase::propagate):
+ * dfg/DFGSafeToExecute.h:
+ (JSC::DFG::safeToExecute):
+ * dfg/DFGSpeculativeJIT.cpp:
+ (JSC::DFG::SpeculativeJIT::compileStoreBarrier):
+ * dfg/DFGSpeculativeJIT32_64.cpp:
+ (JSC::DFG::SpeculativeJIT::compile):
+ * dfg/DFGSpeculativeJIT64.cpp:
+ (JSC::DFG::SpeculativeJIT::compile):
+ * ftl/FTLCapabilities.cpp:
+ (JSC::FTL::canCompile):
+ * ftl/FTLLowerDFGToLLVM.cpp:
+ (JSC::FTL::LowerDFGToLLVM::compileNode):
+ (JSC::FTL::LowerDFGToLLVM::compileStoreBarrierWithNullCheck): Deleted.
+
+2015-05-18 Matthew Hanson <[email protected]>
+
Merge r184289. rdar://problem/18717477
2015-05-13 Michael Saboff <[email protected]>
Modified: branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGAbstractInterpreterInlines.h (184498 => 184499)
--- branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGAbstractInterpreterInlines.h 2015-05-18 17:01:19 UTC (rev 184498)
+++ branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGAbstractInterpreterInlines.h 2015-05-18 17:01:29 UTC (rev 184499)
@@ -2235,10 +2235,6 @@
break;
}
- case StoreBarrierWithNullCheck: {
- break;
- }
-
case CheckTierUpAndOSREnter:
case LoopHint:
case ZombieHint:
Modified: branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGClobberize.h (184498 => 184499)
--- branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGClobberize.h 2015-05-18 17:01:19 UTC (rev 184498)
+++ branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGClobberize.h 2015-05-18 17:01:29 UTC (rev 184499)
@@ -292,7 +292,6 @@
case ProfileType:
case ProfileControlFlow:
case StoreBarrier:
- case StoreBarrierWithNullCheck:
case PutHint:
write(SideState);
return;
Modified: branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGDoesGC.cpp (184498 => 184499)
--- branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGDoesGC.cpp 2015-05-18 17:01:19 UTC (rev 184498)
+++ branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGDoesGC.cpp 2015-05-18 17:01:29 UTC (rev 184499)
@@ -160,7 +160,6 @@
case CheckTierUpAndOSREnter:
case LoopHint:
case StoreBarrier:
- case StoreBarrierWithNullCheck:
case InvalidationPoint:
case NotifyWrite:
case CheckInBounds:
Modified: branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGFixupPhase.cpp (184498 => 184499)
--- branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGFixupPhase.cpp 2015-05-18 17:01:19 UTC (rev 184498)
+++ branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGFixupPhase.cpp 2015-05-18 17:01:29 UTC (rev 184499)
@@ -1235,7 +1235,6 @@
case ExtractOSREntryLocal:
case LoopHint:
case StoreBarrier:
- case StoreBarrierWithNullCheck:
case MovHint:
case ZombieHint:
case BottomValue:
Modified: branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGNode.h (184498 => 184499)
--- branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGNode.h 2015-05-18 17:01:19 UTC (rev 184498)
+++ branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGNode.h 2015-05-18 17:01:29 UTC (rev 184499)
@@ -830,13 +830,7 @@
bool isStoreBarrier()
{
- switch (op()) {
- case StoreBarrier:
- case StoreBarrierWithNullCheck:
- return true;
- default:
- return false;
- }
+ return op() == StoreBarrier;
}
bool hasIdentifier()
Modified: branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGNodeType.h (184498 => 184499)
--- branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGNodeType.h 2015-05-18 17:01:19 UTC (rev 184498)
+++ branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGNodeType.h 2015-05-18 17:01:29 UTC (rev 184499)
@@ -322,7 +322,6 @@
macro(CheckWatchdogTimer, NodeMustGenerate) \
/* Write barriers ! */\
macro(StoreBarrier, NodeMustGenerate) \
- macro(StoreBarrierWithNullCheck, NodeMustGenerate) \
\
/* For-in enumeration opcodes */\
macro(GetEnumerableLength, NodeMustGenerate | NodeResultJS) \
Modified: branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGObjectAllocationSinkingPhase.cpp (184498 => 184499)
--- branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGObjectAllocationSinkingPhase.cpp 2015-05-18 17:01:19 UTC (rev 184498)
+++ branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGObjectAllocationSinkingPhase.cpp 2015-05-18 17:01:29 UTC (rev 184499)
@@ -610,8 +610,7 @@
break;
}
- case StoreBarrier:
- case StoreBarrierWithNullCheck: {
+ case StoreBarrier: {
Node* target = node->child1().node();
if (m_sinkCandidates.contains(target)) {
ASSERT(target->isPhantomAllocation());
@@ -849,7 +848,6 @@
case Check:
case PutHint:
case StoreBarrier:
- case StoreBarrierWithNullCheck:
break;
case PutStructure:
Modified: branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGPredictionPropagationPhase.cpp (184498 => 184499)
--- branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGPredictionPropagationPhase.cpp 2015-05-18 17:01:19 UTC (rev 184498)
+++ branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGPredictionPropagationPhase.cpp 2015-05-18 17:01:29 UTC (rev 184499)
@@ -610,7 +610,6 @@
#ifndef NDEBUG
// These get ignored because they don't return anything.
case StoreBarrier:
- case StoreBarrierWithNullCheck:
case PutByValDirect:
case PutByVal:
case PutClosureVar:
Modified: branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGSafeToExecute.h (184498 => 184499)
--- branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGSafeToExecute.h 2015-05-18 17:01:19 UTC (rev 184498)
+++ branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGSafeToExecute.h 2015-05-18 17:01:29 UTC (rev 184499)
@@ -247,7 +247,6 @@
case CheckTierUpAndOSREnter:
case LoopHint:
case StoreBarrier:
- case StoreBarrierWithNullCheck:
case InvalidationPoint:
case NotifyWrite:
case CheckInBounds:
Modified: branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp (184498 => 184499)
--- branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp 2015-05-18 17:01:19 UTC (rev 184498)
+++ branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGSpeculativeJIT.cpp 2015-05-18 17:01:29 UTC (rev 184499)
@@ -6068,37 +6068,14 @@
#if ENABLE(GGC)
void SpeculativeJIT::compileStoreBarrier(Node* node)
{
- switch (node->op()) {
- case StoreBarrier: {
- SpeculateCellOperand base(this, node->child1());
- GPRTemporary scratch1(this);
- GPRTemporary scratch2(this);
+ ASSERT(node->op() == StoreBarrier);
- writeBarrier(base.gpr(), scratch1.gpr(), scratch2.gpr());
- break;
- }
-
- case StoreBarrierWithNullCheck: {
- JSValueOperand base(this, node->child1());
- GPRTemporary scratch1(this);
- GPRTemporary scratch2(this);
+ SpeculateCellOperand base(this, node->child1());
+ GPRTemporary scratch1(this);
+ GPRTemporary scratch2(this);
-#if USE(JSVALUE64)
- JITCompiler::Jump isNull = m_jit.branchTest64(JITCompiler::Zero, base.gpr());
- writeBarrier(base.gpr(), scratch1.gpr(), scratch2.gpr());
-#else
- JITCompiler::Jump isNull = m_jit.branch32(JITCompiler::Equal, base.tagGPR(), TrustedImm32(JSValue::EmptyValueTag));
- writeBarrier(base.payloadGPR(), scratch1.gpr(), scratch2.gpr());
-#endif
- isNull.link(&m_jit);
- break;
- }
+ writeBarrier(base.gpr(), scratch1.gpr(), scratch2.gpr());
- default:
- RELEASE_ASSERT_NOT_REACHED();
- break;
- }
-
noResult(node);
}
Modified: branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp (184498 => 184499)
--- branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp 2015-05-18 17:01:19 UTC (rev 184498)
+++ branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp 2015-05-18 17:01:29 UTC (rev 184499)
@@ -4222,8 +4222,7 @@
compileIn(node);
break;
- case StoreBarrier:
- case StoreBarrierWithNullCheck: {
+ case StoreBarrier: {
compileStoreBarrier(node);
break;
}
Modified: branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp (184498 => 184499)
--- branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp 2015-05-18 17:01:19 UTC (rev 184498)
+++ branches/safari-601.1.32.2-branch/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp 2015-05-18 17:01:29 UTC (rev 184499)
@@ -4302,8 +4302,7 @@
DFG_CRASH(m_jit.graph(), node, "Unexpected Unreachable node");
break;
- case StoreBarrier:
- case StoreBarrierWithNullCheck: {
+ case StoreBarrier: {
compileStoreBarrier(node);
break;
}
Modified: branches/safari-601.1.32.2-branch/Source/_javascript_Core/ftl/FTLCapabilities.cpp (184498 => 184499)
--- branches/safari-601.1.32.2-branch/Source/_javascript_Core/ftl/FTLCapabilities.cpp 2015-05-18 17:01:19 UTC (rev 184498)
+++ branches/safari-601.1.32.2-branch/Source/_javascript_Core/ftl/FTLCapabilities.cpp 2015-05-18 17:01:29 UTC (rev 184499)
@@ -122,7 +122,6 @@
case GetTypedArrayByteOffset:
case NotifyWrite:
case StoreBarrier:
- case StoreBarrierWithNullCheck:
case Call:
case Construct:
case CallVarargs:
Modified: branches/safari-601.1.32.2-branch/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp (184498 => 184499)
--- branches/safari-601.1.32.2-branch/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp 2015-05-18 17:01:19 UTC (rev 184498)
+++ branches/safari-601.1.32.2-branch/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp 2015-05-18 17:01:29 UTC (rev 184499)
@@ -812,9 +812,6 @@
case StoreBarrier:
compileStoreBarrier();
break;
- case StoreBarrierWithNullCheck:
- compileStoreBarrierWithNullCheck();
- break;
case HasIndexedProperty:
compileHasIndexedProperty();
break;
@@ -4854,22 +4851,6 @@
emitStoreBarrier(lowCell(m_node->child1()));
}
- void compileStoreBarrierWithNullCheck()
- {
-#if ENABLE(GGC)
- LBasicBlock isNotNull = FTL_NEW_BLOCK(m_out, ("Store barrier with null check value not null"));
- LBasicBlock continuation = FTL_NEW_BLOCK(m_out, ("Store barrier continuation"));
-
- LValue base = lowJSValue(m_node->child1());
- m_out.branch(m_out.isZero64(base), unsure(continuation), unsure(isNotNull));
- LBasicBlock lastNext = m_out.appendTo(isNotNull, continuation);
- emitStoreBarrier(base);
- m_out.appendTo(continuation, lastNext);
-#else
- speculate(m_node->child1());
-#endif
- }
-
void compileHasIndexedProperty()
{
switch (m_node->arrayMode().type()) {