Merge V8 5.8.283.32
Test: Build V8 for arm, arm64, x86, x86_64, mips, mips64 and
set a PAC script from the UI on bullhead
Change-Id: I7cc773b5daca34d869e768a1deebae3876f2dfac
diff --git a/src/compiler/node.cc b/src/compiler/node.cc
index f4e7b17..16dc2db 100644
--- a/src/compiler/node.cc
+++ b/src/compiler/node.cc
@@ -296,12 +296,44 @@
return mask == 3;
}
+bool Node::OwnedByAddressingOperand() const {
+ for (Use* use = first_use_; use; use = use->next) {
+ Node* from = use->from();
+ if (from->opcode() != IrOpcode::kLoad &&
+ // If {from} is store, make sure it does not use {this} as value
+ (from->opcode() != IrOpcode::kStore || from->InputAt(2) == this) &&
+ from->opcode() != IrOpcode::kInt32Add &&
+ from->opcode() != IrOpcode::kInt64Add) {
+ return false;
+ }
+ }
+ return true;
+}
void Node::Print() const {
OFStream os(stdout);
os << *this << std::endl;
+ for (Node* input : this->inputs()) {
+ os << " " << *input << std::endl;
+ }
}
+std::ostream& operator<<(std::ostream& os, const Node& n) {
+ os << n.id() << ": " << *n.op();
+ if (n.InputCount() > 0) {
+ os << "(";
+ for (int i = 0; i < n.InputCount(); ++i) {
+ if (i != 0) os << ", ";
+ if (n.InputAt(i)) {
+ os << n.InputAt(i)->id();
+ } else {
+ os << "null";
+ }
+ }
+ os << ")";
+ }
+ return os;
+}
Node::Node(NodeId id, const Operator* op, int inline_count, int inline_capacity)
: op_(op),
@@ -378,25 +410,6 @@
}
#endif
-
-std::ostream& operator<<(std::ostream& os, const Node& n) {
- os << n.id() << ": " << *n.op();
- if (n.InputCount() > 0) {
- os << "(";
- for (int i = 0; i < n.InputCount(); ++i) {
- if (i != 0) os << ", ";
- if (n.InputAt(i)) {
- os << n.InputAt(i)->id();
- } else {
- os << "null";
- }
- }
- os << ")";
- }
- return os;
-}
-
-
Node::InputEdges::iterator Node::InputEdges::iterator::operator++(int n) {
iterator result(*this);
++(*this);
@@ -404,9 +417,6 @@
}
-bool Node::InputEdges::empty() const { return begin() == end(); }
-
-
Node::Inputs::const_iterator Node::Inputs::const_iterator::operator++(int n) {
const_iterator result(*this);
++(*this);
@@ -414,9 +424,6 @@
}
-bool Node::Inputs::empty() const { return begin() == end(); }
-
-
Node::UseEdges::iterator Node::UseEdges::iterator::operator++(int n) {
iterator result(*this);
++(*this);