Index: src/hydrogen-instructions.cc |
diff --git a/src/hydrogen-instructions.cc b/src/hydrogen-instructions.cc |
index 867fa50fca25aa30e5508edc5368d76b23c7a576..1613127e2febe7c80d0d99ceb9f4efac5bb821d8 100644 |
--- a/src/hydrogen-instructions.cc |
+++ b/src/hydrogen-instructions.cc |
@@ -741,6 +741,10 @@ void HInstruction::InsertBefore(HInstruction* next) { |
next_ = next; |
previous_ = prev; |
SetBlock(next->block()); |
+ if (position() == RelocInfo::kNoPosition && |
+ next->position() != RelocInfo::kNoPosition) { |
+ set_position(next->position()); |
+ } |
} |
@@ -775,6 +779,10 @@ void HInstruction::InsertAfter(HInstruction* previous) { |
if (block->last() == previous) { |
block->set_last(this); |
} |
+ if (position() == RelocInfo::kNoPosition && |
+ previous->position() != RelocInfo::kNoPosition) { |
+ set_position(previous->position()); |
+ } |
} |
@@ -1592,6 +1600,11 @@ Range* HConstant::InferRange(Zone* zone) { |
} |
+int HPhi::position() const { |
+ return block()->first()->position(); |
+} |
+ |
+ |
Range* HPhi::InferRange(Zone* zone) { |
Representation r = representation(); |
if (r.IsSmiOrInteger32()) { |