Title: [183201] trunk/Source/_javascript_Core
Revision
183201
Author
[email protected]
Date
2015-04-23 12:25:10 -0700 (Thu, 23 Apr 2015)

Log Message

Rename HardPhantom to MustGenerate.

Rubber stamped by Geoffrey Garen.
        
We are steadily moving towards Phantom just being a backend hack in the DFG. HardPhantom
is more than that; it's a utility for forcing the execution of otherwise killable nodes.
NodeMustGenerate is the flag we use to indicate that something isn't killable. So this
node should just be called MustGenerate.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGArgumentsEliminationPhase.cpp:
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGDCEPhase.cpp:
(JSC::DFG::DCEPhase::run):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::tryToRelaxRepresentation):
* dfg/DFGIntegerCheckCombiningPhase.cpp:
(JSC::DFG::IntegerCheckCombiningPhase::insertMustAdd):
* dfg/DFGMayExit.cpp:
(JSC::DFG::mayExit):
* dfg/DFGNode.h:
(JSC::DFG::Node::willHaveCodeGenOrOSR):
* dfg/DFGNodeType.h:
* dfg/DFGObjectAllocationSinkingPhase.cpp:
(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):
* dfg/DFGPhantomCanonicalizationPhase.cpp:
(JSC::DFG::PhantomCanonicalizationPhase::run):
* dfg/DFGPhantomRemovalPhase.cpp:
(JSC::DFG::PhantomRemovalPhase::run):
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGTypeCheckHoistingPhase.cpp:
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
(JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):
* dfg/DFGVarargsForwardingPhase.cpp:
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (183200 => 183201)


--- trunk/Source/_javascript_Core/ChangeLog	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/ChangeLog	2015-04-23 19:25:10 UTC (rev 183201)
@@ -1,3 +1,56 @@
+2015-04-23  Filip Pizlo  <[email protected]>
+
+        Rename HardPhantom to MustGenerate.
+
+        Rubber stamped by Geoffrey Garen.
+        
+        We are steadily moving towards Phantom just being a backend hack in the DFG. HardPhantom
+        is more than that; it's a utility for forcing the execution of otherwise killable nodes.
+        NodeMustGenerate is the flag we use to indicate that something isn't killable. So this
+        node should just be called MustGenerate.
+
+        * dfg/DFGAbstractInterpreterInlines.h:
+        (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
+        * dfg/DFGArgumentsEliminationPhase.cpp:
+        * dfg/DFGClobberize.h:
+        (JSC::DFG::clobberize):
+        * dfg/DFGDCEPhase.cpp:
+        (JSC::DFG::DCEPhase::run):
+        * dfg/DFGDoesGC.cpp:
+        (JSC::DFG::doesGC):
+        * dfg/DFGFixupPhase.cpp:
+        (JSC::DFG::FixupPhase::fixupNode):
+        (JSC::DFG::FixupPhase::tryToRelaxRepresentation):
+        * dfg/DFGIntegerCheckCombiningPhase.cpp:
+        (JSC::DFG::IntegerCheckCombiningPhase::insertMustAdd):
+        * dfg/DFGMayExit.cpp:
+        (JSC::DFG::mayExit):
+        * dfg/DFGNode.h:
+        (JSC::DFG::Node::willHaveCodeGenOrOSR):
+        * dfg/DFGNodeType.h:
+        * dfg/DFGObjectAllocationSinkingPhase.cpp:
+        (JSC::DFG::ObjectAllocationSinkingPhase::handleNode):
+        * dfg/DFGPhantomCanonicalizationPhase.cpp:
+        (JSC::DFG::PhantomCanonicalizationPhase::run):
+        * dfg/DFGPhantomRemovalPhase.cpp:
+        (JSC::DFG::PhantomRemovalPhase::run):
+        * dfg/DFGPredictionPropagationPhase.cpp:
+        (JSC::DFG::PredictionPropagationPhase::propagate):
+        * dfg/DFGSafeToExecute.h:
+        (JSC::DFG::safeToExecute):
+        * dfg/DFGSpeculativeJIT32_64.cpp:
+        (JSC::DFG::SpeculativeJIT::compile):
+        * dfg/DFGSpeculativeJIT64.cpp:
+        (JSC::DFG::SpeculativeJIT::compile):
+        * dfg/DFGTypeCheckHoistingPhase.cpp:
+        (JSC::DFG::TypeCheckHoistingPhase::identifyRedundantStructureChecks):
+        (JSC::DFG::TypeCheckHoistingPhase::identifyRedundantArrayChecks):
+        * dfg/DFGVarargsForwardingPhase.cpp:
+        * ftl/FTLCapabilities.cpp:
+        (JSC::FTL::canCompile):
+        * ftl/FTLLowerDFGToLLVM.cpp:
+        (JSC::FTL::LowerDFGToLLVM::compileNode):
+
 2015-04-23  Jordan Harband  <[email protected]>
 
         Implement `Object.assign`

Modified: trunk/Source/_javascript_Core/dfg/DFGAbstractInterpreterInlines.h (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGAbstractInterpreterInlines.h	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGAbstractInterpreterInlines.h	2015-04-23 19:25:10 UTC (rev 183201)
@@ -2068,7 +2068,7 @@
     case ProfileType:
     case ProfileControlFlow:
     case Phantom:
-    case HardPhantom:
+    case MustGenerate:
     case CountExecution:
     case CheckTierUpInLoop:
     case CheckTierUpAtReturn:

Modified: trunk/Source/_javascript_Core/dfg/DFGArgumentsEliminationPhase.cpp (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGArgumentsEliminationPhase.cpp	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGArgumentsEliminationPhase.cpp	2015-04-23 19:25:10 UTC (rev 183201)
@@ -161,7 +161,7 @@
 
                 case Phantom:
                 case Check:
-                case HardPhantom:
+                case MustGenerate:
                 case MovHint:
                 case PutHint:
                     break;

Modified: trunk/Source/_javascript_Core/dfg/DFGClobberize.h (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGClobberize.h	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGClobberize.h	2015-04-23 19:25:10 UTC (rev 183201)
@@ -115,7 +115,7 @@
         
     case Identity:
     case Phantom:
-    case HardPhantom:
+    case MustGenerate:
     case Check:
     case ExtractOSREntryLocal:
     case CheckStructureImmediate:

Modified: trunk/Source/_javascript_Core/dfg/DFGDCEPhase.cpp (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGDCEPhase.cpp	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGDCEPhase.cpp	2015-04-23 19:25:10 UTC (rev 183201)
@@ -71,7 +71,7 @@
             cleanVariables(m_graph.m_arguments);
         }
         
-        // Just do a basic HardPhantom/Phantom/Check clean-up.
+        // Just do a basic MustGenerate/Phantom/Check clean-up.
         for (BlockIndex blockIndex = m_graph.numBlocks(); blockIndex--;) {
             BasicBlock* block = m_graph.block(blockIndex);
             if (!block)
@@ -82,7 +82,7 @@
                 Node* node = block->at(sourceIndex++);
                 switch (node->op()) {
                 case Check:
-                case HardPhantom:
+                case MustGenerate:
                 case Phantom:
                     if (node->children.isEmpty())
                         continue;

Modified: trunk/Source/_javascript_Core/dfg/DFGDoesGC.cpp (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGDoesGC.cpp	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGDoesGC.cpp	2015-04-23 19:25:10 UTC (rev 183201)
@@ -55,7 +55,7 @@
     case MovHint:
     case ZombieHint:
     case Phantom:
-    case HardPhantom:
+    case MustGenerate:
     case Upsilon:
     case Phi:
     case Flush:

Modified: trunk/Source/_javascript_Core/dfg/DFGFixupPhase.cpp (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGFixupPhase.cpp	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGFixupPhase.cpp	2015-04-23 19:25:10 UTC (rev 183201)
@@ -1027,7 +1027,7 @@
         case ConstantStoragePointer:
         case DoubleAsInt32:
         case ValueToInt32:
-        case HardPhantom: // HardPhantom would be trivial to handle but anyway we assert that we won't see it here yet.
+        case MustGenerate: // MustGenerate would be trivial to handle but anyway we assert that we won't see it here yet.
         case DoubleRep:
         case ValueRep:
         case Int52Rep:
@@ -2011,7 +2011,7 @@
         case MovHint:
         case Phantom:
         case Check:
-        case HardPhantom:
+        case MustGenerate:
             DFG_NODE_DO_TO_CHILDREN(m_graph, m_currentNode, fixEdgeRepresentation);
             break;
             

Modified: trunk/Source/_javascript_Core/dfg/DFGIntegerCheckCombiningPhase.cpp (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGIntegerCheckCombiningPhase.cpp	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGIntegerCheckCombiningPhase.cpp	2015-04-23 19:25:10 UTC (rev 183201)
@@ -390,7 +390,7 @@
     {
         Node* result = insertAdd(nodeIndex, origin, source, addend);
         m_insertionSet.insertNode(
-            nodeIndex, SpecNone, HardPhantom, origin, result->defaultEdge());
+            nodeIndex, SpecNone, MustGenerate, origin, result->defaultEdge());
         return result;
     }
     

Modified: trunk/Source/_javascript_Core/dfg/DFGMayExit.cpp (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGMayExit.cpp	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGMayExit.cpp	2015-04-23 19:25:10 UTC (rev 183201)
@@ -71,7 +71,7 @@
     case Flush:
     case Phantom:
     case Check:
-    case HardPhantom:
+    case MustGenerate:
     case GetLocal:
     case LoopHint:
     case Phi:

Modified: trunk/Source/_javascript_Core/dfg/DFGNode.h (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGNode.h	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGNode.h	2015-04-23 19:25:10 UTC (rev 183201)
@@ -1543,7 +1543,7 @@
         case ZombieHint:
             return true;
         case Phantom:
-        case HardPhantom:
+        case MustGenerate:
             return child1().useKindUnchecked() != UntypedUse || child2().useKindUnchecked() != UntypedUse || child3().useKindUnchecked() != UntypedUse;
         default:
             return shouldGenerate();

Modified: trunk/Source/_javascript_Core/dfg/DFGNodeType.h (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGNodeType.h	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGNodeType.h	2015-04-23 19:25:10 UTC (rev 183201)
@@ -66,7 +66,7 @@
     macro(MovHint, NodeMustGenerate) \
     macro(ZombieHint, NodeMustGenerate) \
     macro(Phantom, NodeMustGenerate) \
-    macro(HardPhantom, NodeMustGenerate) /* Like Phantom, but we never remove any of its children. */ \
+    macro(MustGenerate, NodeMustGenerate) /* Utility node for making soem not-usually-NodeMustGenerate node become like NodeMustGenerate. */ \
     macro(Check, NodeMustGenerate) /* Used if we want just a type check but not liveness. Non-checking uses will be removed. */\
     macro(Upsilon, NodeRelevantToOSR) \
     macro(Phi, NodeRelevantToOSR) \

Modified: trunk/Source/_javascript_Core/dfg/DFGObjectAllocationSinkingPhase.cpp (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGObjectAllocationSinkingPhase.cpp	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGObjectAllocationSinkingPhase.cpp	2015-04-23 19:25:10 UTC (rev 183201)
@@ -768,7 +768,7 @@
         case MovHint:
         case Phantom:
         case Check:
-        case HardPhantom:
+        case MustGenerate:
         case StoreBarrier:
         case StoreBarrierWithNullCheck:
         case PutHint:

Modified: trunk/Source/_javascript_Core/dfg/DFGPhantomCanonicalizationPhase.cpp (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGPhantomCanonicalizationPhase.cpp	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGPhantomCanonicalizationPhase.cpp	2015-04-23 19:25:10 UTC (rev 183201)
@@ -38,7 +38,7 @@
 namespace JSC { namespace DFG {
 
 static const NodeFlags NodeNeedsPhantom = NodeMiscFlag1;
-static const NodeFlags NodeNeedsHardPhantom = NodeMiscFlag2;
+static const NodeFlags NodeNeedsMustGenerate = NodeMiscFlag2;
 
 class PhantomCanonicalizationPhase : public Phase {
 public:
@@ -51,7 +51,7 @@
     {
         ASSERT(m_graph.m_form == SSA);
         
-        m_graph.clearFlagsOnAllNodes(NodeNeedsPhantom | NodeNeedsHardPhantom | NodeRelevantToOSR);
+        m_graph.clearFlagsOnAllNodes(NodeNeedsPhantom | NodeNeedsMustGenerate | NodeRelevantToOSR);
         m_graph.mergeRelevantToOSR();
         
         for (BlockIndex blockIndex = m_graph.numBlocks(); blockIndex--;) {
@@ -63,13 +63,13 @@
             unsigned targetIndex = 0;
             while (sourceIndex < block->size()) {
                 Node* node = block->at(sourceIndex++);
-                if (node->op() == HardPhantom || node->op() == Phantom || node->op() == Check) {
+                if (node->op() == MustGenerate || node->op() == Phantom || node->op() == Check) {
                     for (unsigned i = 0; i < AdjacencyList::Size; ++i) {
                         Edge edge = node->children.child(i);
                         if (!edge)
                             break;
-                        if (node->op() == HardPhantom)
-                            edge->mergeFlags(NodeNeedsHardPhantom);
+                        if (node->op() == MustGenerate)
+                            edge->mergeFlags(NodeNeedsMustGenerate);
                         if ((edge->flags() & NodeRelevantToOSR) && node->op() == Phantom) {
                             // A Phantom on a node that is RelevantToOSR means that we need to keep
                             // a Phantom on this node instead of just having a Check.
@@ -101,9 +101,9 @@
             
             for (unsigned nodeIndex = 0; nodeIndex < block->size(); ++nodeIndex) {
                 Node* node = block->at(nodeIndex);
-                if (node->flags() & NodeNeedsHardPhantom) {
+                if (node->flags() & NodeNeedsMustGenerate) {
                     insertionSet.insertNode(
-                        nodeIndex + 1, SpecNone, HardPhantom, node->origin, node->defaultEdge());
+                        nodeIndex + 1, SpecNone, MustGenerate, node->origin, node->defaultEdge());
                 } else if (node->flags() & NodeNeedsPhantom) {
                     insertionSet.insertNode(
                         nodeIndex + 1, SpecNone, Phantom, node->origin, node->defaultEdge());

Modified: trunk/Source/_javascript_Core/dfg/DFGPhantomRemovalPhase.cpp (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGPhantomRemovalPhase.cpp	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGPhantomRemovalPhase.cpp	2015-04-23 19:25:10 UTC (rev 183201)
@@ -147,7 +147,7 @@
                     break;
                 }
                     
-                case HardPhantom: {
+                case MustGenerate: {
                     if (node->children.isEmpty()) {
                         m_graph.m_allocator.free(node);
                         continue;

Modified: trunk/Source/_javascript_Core/dfg/DFGPredictionPropagationPhase.cpp (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGPredictionPropagationPhase.cpp	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGPredictionPropagationPhase.cpp	2015-04-23 19:25:10 UTC (rev 183201)
@@ -534,7 +534,7 @@
         case InvalidationPoint:
         case CheckInBounds:
         case ValueToInt32:
-        case HardPhantom:
+        case MustGenerate:
         case DoubleRep:
         case ValueRep:
         case Int52Rep:

Modified: trunk/Source/_javascript_Core/dfg/DFGSafeToExecute.h (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGSafeToExecute.h	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGSafeToExecute.h	2015-04-23 19:25:10 UTC (rev 183201)
@@ -125,7 +125,7 @@
     case MovHint:
     case ZombieHint:
     case Phantom:
-    case HardPhantom:
+    case MustGenerate:
     case Upsilon:
     case Phi:
     case Flush:

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT32_64.cpp	2015-04-23 19:25:10 UTC (rev 183201)
@@ -4617,7 +4617,7 @@
         break;
 
     case Phantom:
-    case HardPhantom:
+    case MustGenerate:
     case Check:
         DFG_NODE_DO_TO_CHILDREN(m_jit.graph(), node, speculate);
         noResult(node);

Modified: trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGSpeculativeJIT64.cpp	2015-04-23 19:25:10 UTC (rev 183201)
@@ -4334,7 +4334,7 @@
         break;
 
     case Phantom:
-    case HardPhantom:
+    case MustGenerate:
     case Check:
         DFG_NODE_DO_TO_CHILDREN(m_jit.graph(), node, speculate);
         noResult(node);

Modified: trunk/Source/_javascript_Core/dfg/DFGTypeCheckHoistingPhase.cpp (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGTypeCheckHoistingPhase.cpp	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGTypeCheckHoistingPhase.cpp	2015-04-23 19:25:10 UTC (rev 183201)
@@ -244,7 +244,7 @@
                 case GetIndexedPropertyStorage:
                 case GetTypedArrayByteOffset:
                 case Phantom:
-                case HardPhantom:
+                case MustGenerate:
                 case MovHint:
                 case MultiGetByOffset:
                 case MultiPutByOffset:
@@ -337,7 +337,7 @@
                 case GetArrayLength:
                 case GetIndexedPropertyStorage:
                 case Phantom:
-                case HardPhantom:
+                case MustGenerate:
                 case MovHint:
                 case MultiGetByOffset:
                 case MultiPutByOffset:

Modified: trunk/Source/_javascript_Core/dfg/DFGVarargsForwardingPhase.cpp (183200 => 183201)


--- trunk/Source/_javascript_Core/dfg/DFGVarargsForwardingPhase.cpp	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/dfg/DFGVarargsForwardingPhase.cpp	2015-04-23 19:25:10 UTC (rev 183201)
@@ -92,7 +92,7 @@
             switch (node->op()) {
             case Phantom:
             case Check:
-            case HardPhantom:
+            case MustGenerate:
             case MovHint:
             case PutHint:
             case LoadVarargs:
@@ -214,7 +214,7 @@
             switch (node->op()) {
             case Phantom:
             case Check:
-            case HardPhantom:
+            case MustGenerate:
             case MovHint:
             case PutHint:
                 // We don't need to change anything with these.

Modified: trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp (183200 => 183201)


--- trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/ftl/FTLCapabilities.cpp	2015-04-23 19:25:10 UTC (rev 183201)
@@ -52,7 +52,7 @@
     case MovHint:
     case ZombieHint:
     case Phantom:
-    case HardPhantom:
+    case MustGenerate:
     case Flush:
     case PhantomLocal:
     case SetArgument:

Modified: trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp (183200 => 183201)


--- trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp	2015-04-23 18:58:04 UTC (rev 183200)
+++ trunk/Source/_javascript_Core/ftl/FTLLowerDFGToLLVM.cpp	2015-04-23 19:25:10 UTC (rev 183201)
@@ -464,7 +464,7 @@
             compilePutStack();
             break;
         case Phantom:
-        case HardPhantom:
+        case MustGenerate:
         case Check:
             compilePhantom();
             break;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to