| Index: src/hydrogen-instructions.cc | 
| diff --git a/src/hydrogen-instructions.cc b/src/hydrogen-instructions.cc | 
| index 28617517163d6e589860dd2ac8030ad48f39e395..a7194d60cbaa8b0e17f2aa6546511b0a252dee44 100644 | 
| --- a/src/hydrogen-instructions.cc | 
| +++ b/src/hydrogen-instructions.cc | 
| @@ -680,6 +680,19 @@ void HValue::ComputeInitialRange(Zone* zone) { | 
| } | 
|  | 
|  | 
| +void HSourcePosition::PrintTo(FILE* out) { | 
| +  if (IsUnknown()) { | 
| +    PrintF(out, "<?>"); | 
| +  } else { | 
| +    if (FLAG_hydrogen_track_positions) { | 
| +      PrintF(out, "<%d:%d>", inlining_id(), position()); | 
| +    } else { | 
| +      PrintF(out, "<0:%d>", raw()); | 
| +    } | 
| +  } | 
| +} | 
| + | 
| + | 
| void HInstruction::PrintTo(StringStream* stream) { | 
| PrintMnemonicTo(stream); | 
| PrintDataTo(stream); | 
| @@ -733,8 +746,7 @@ void HInstruction::InsertBefore(HInstruction* next) { | 
| next_ = next; | 
| previous_ = prev; | 
| SetBlock(next->block()); | 
| -  if (position() == RelocInfo::kNoPosition && | 
| -      next->position() != RelocInfo::kNoPosition) { | 
| +  if (!has_position() && next->has_position()) { | 
| set_position(next->position()); | 
| } | 
| } | 
| @@ -771,8 +783,7 @@ void HInstruction::InsertAfter(HInstruction* previous) { | 
| if (block->last() == previous) { | 
| block->set_last(this); | 
| } | 
| -  if (position() == RelocInfo::kNoPosition && | 
| -      previous->position() != RelocInfo::kNoPosition) { | 
| +  if (!has_position() && previous->has_position()) { | 
| set_position(previous->position()); | 
| } | 
| } | 
| @@ -1668,7 +1679,7 @@ Range* HConstant::InferRange(Zone* zone) { | 
| } | 
|  | 
|  | 
| -int HPhi::position() const { | 
| +HSourcePosition HPhi::position() const { | 
| return block()->first()->position(); | 
| } | 
|  | 
|  |