summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/dfg/DFGNode.cpp
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2016-04-10 09:28:39 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2016-04-10 09:28:39 +0000
commit32761a6cee1d0dee366b885b7b9c777e67885688 (patch)
treed6bec92bebfb216f4126356e55518842c2f476a1 /Source/JavaScriptCore/dfg/DFGNode.cpp
parenta4e969f4965059196ca948db781e52f7cfebf19e (diff)
downloadWebKitGtk-tarball-32761a6cee1d0dee366b885b7b9c777e67885688.tar.gz
webkitgtk-2.4.11webkitgtk-2.4.11
Diffstat (limited to 'Source/JavaScriptCore/dfg/DFGNode.cpp')
-rw-r--r--Source/JavaScriptCore/dfg/DFGNode.cpp155
1 files changed, 3 insertions, 152 deletions
diff --git a/Source/JavaScriptCore/dfg/DFGNode.cpp b/Source/JavaScriptCore/dfg/DFGNode.cpp
index 6a9853424..bf43f29a4 100644
--- a/Source/JavaScriptCore/dfg/DFGNode.cpp
+++ b/Source/JavaScriptCore/dfg/DFGNode.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013, 2014 Apple Inc. All rights reserved.
+ * Copyright (C) 2013 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -30,40 +30,9 @@
#include "DFGGraph.h"
#include "DFGNodeAllocator.h"
-#include "DFGPromotedHeapLocation.h"
-#include "JSCInlines.h"
namespace JSC { namespace DFG {
-bool MultiPutByOffsetData::writesStructures() const
-{
- for (unsigned i = variants.size(); i--;) {
- if (variants[i].writesStructures())
- return true;
- }
- return false;
-}
-
-bool MultiPutByOffsetData::reallocatesStorage() const
-{
- for (unsigned i = variants.size(); i--;) {
- if (variants[i].reallocatesStorage())
- return true;
- }
- return false;
-}
-
-void BranchTarget::dump(PrintStream& out) const
-{
- if (!block)
- return;
-
- out.print(*block);
-
- if (count == count) // If the count is not NaN, then print it.
- out.print("/w:", count);
-}
-
unsigned Node::index() const
{
return NodeAllocator::allocatorOf(this)->indexOf(this);
@@ -75,6 +44,7 @@ bool Node::hasVariableAccessData(Graph& graph)
case Phi:
return graph.m_form != SSA;
case GetLocal:
+ case GetArgument:
case SetLocal:
case SetArgument:
case Flush:
@@ -85,119 +55,6 @@ bool Node::hasVariableAccessData(Graph& graph)
}
}
-void Node::remove()
-{
- ASSERT(!(flags() & NodeHasVarArgs));
-
- children = children.justChecks();
-
- setOpAndDefaultFlags(Check);
-}
-
-void Node::convertToIdentity()
-{
- RELEASE_ASSERT(child1());
- RELEASE_ASSERT(!child2());
- NodeFlags result = canonicalResultRepresentation(this->result());
- setOpAndDefaultFlags(Identity);
- setResult(result);
-}
-
-void Node::convertToIdentityOn(Node* child)
-{
- children.reset();
- child1() = child->defaultEdge();
- NodeFlags output = canonicalResultRepresentation(this->result());
- NodeFlags input = canonicalResultRepresentation(child->result());
- if (output == input) {
- setOpAndDefaultFlags(Identity);
- setResult(output);
- return;
- }
- switch (output) {
- case NodeResultDouble:
- setOpAndDefaultFlags(DoubleRep);
- switch (input) {
- case NodeResultInt52:
- child1().setUseKind(Int52RepUse);
- return;
- case NodeResultJS:
- child1().setUseKind(NumberUse);
- return;
- default:
- RELEASE_ASSERT_NOT_REACHED();
- return;
- }
- case NodeResultInt52:
- setOpAndDefaultFlags(Int52Rep);
- switch (input) {
- case NodeResultDouble:
- child1().setUseKind(DoubleRepMachineIntUse);
- return;
- case NodeResultJS:
- child1().setUseKind(MachineIntUse);
- return;
- default:
- RELEASE_ASSERT_NOT_REACHED();
- return;
- }
- case NodeResultJS:
- setOpAndDefaultFlags(ValueRep);
- switch (input) {
- case NodeResultDouble:
- child1().setUseKind(DoubleRepUse);
- return;
- case NodeResultInt52:
- child1().setUseKind(Int52RepUse);
- return;
- default:
- RELEASE_ASSERT_NOT_REACHED();
- return;
- }
- default:
- RELEASE_ASSERT_NOT_REACHED();
- return;
- }
-}
-
-void Node::convertToPutHint(const PromotedLocationDescriptor& descriptor, Node* base, Node* value)
-{
- m_op = PutHint;
- m_opInfo = descriptor.imm1().m_value;
- m_opInfo2 = descriptor.imm2().m_value;
- child1() = base->defaultEdge();
- child2() = value->defaultEdge();
- child3() = Edge();
-}
-
-void Node::convertToPutStructureHint(Node* structure)
-{
- ASSERT(m_op == PutStructure);
- ASSERT(structure->castConstant<Structure*>() == transition()->next);
- convertToPutHint(StructurePLoc, child1().node(), structure);
-}
-
-void Node::convertToPutByOffsetHint()
-{
- ASSERT(m_op == PutByOffset);
- convertToPutHint(
- PromotedLocationDescriptor(NamedPropertyPLoc, storageAccessData().identifierNumber),
- child2().node(), child3().node());
-}
-
-void Node::convertToPutClosureVarHint()
-{
- ASSERT(m_op == PutClosureVar);
- convertToPutHint(
- PromotedLocationDescriptor(ClosureVarPLoc, scopeOffset().offset()),
- child1().node(), child2().node());
-}
-
-PromotedLocationDescriptor Node::promotedLocationDescriptor()
-{
- return PromotedLocationDescriptor(static_cast<PromotedLocationKind>(m_opInfo), m_opInfo2);
-}
-
} } // namespace JSC::DFG
namespace WTF {
@@ -217,9 +74,6 @@ void printInternal(PrintStream& out, SwitchKind kind)
case SwitchString:
out.print("SwitchString");
return;
- case SwitchCell:
- out.print("SwitchCell");
- return;
}
RELEASE_ASSERT_NOT_REACHED();
}
@@ -231,10 +85,7 @@ void printInternal(PrintStream& out, Node* node)
return;
}
out.print("@", node->index());
- if (node->hasDoubleResult())
- out.print("<Double>");
- else if (node->hasInt52Result())
- out.print("<Int52>");
+ out.print(AbbreviatedSpeculationDump(node->prediction()));
}
} // namespace WTF