OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/base/bits.h" | 7 #include "src/base/bits.h" |
8 #include "src/double.h" | 8 #include "src/double.h" |
9 #include "src/factory.h" | 9 #include "src/factory.h" |
10 #include "src/hydrogen-infer-representation.h" | 10 #include "src/hydrogen-infer-representation.h" |
(...skipping 604 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
615 } | 615 } |
616 | 616 |
617 | 617 |
618 void HValue::ComputeInitialRange(Zone* zone) { | 618 void HValue::ComputeInitialRange(Zone* zone) { |
619 DCHECK(!HasRange()); | 619 DCHECK(!HasRange()); |
620 range_ = InferRange(zone); | 620 range_ = InferRange(zone); |
621 DCHECK(HasRange()); | 621 DCHECK(HasRange()); |
622 } | 622 } |
623 | 623 |
624 | 624 |
625 std::ostream& operator<<(std::ostream& os, const HSourcePosition& p) { | |
626 if (p.IsUnknown()) { | |
627 return os << "<?>"; | |
628 } else if (FLAG_hydrogen_track_positions) { | |
629 return os << "<" << p.inlining_id() << ":" << p.position() << ">"; | |
630 } else { | |
631 return os << "<0:" << p.raw() << ">"; | |
632 } | |
633 } | |
634 | |
635 | |
636 std::ostream& HInstruction::PrintTo(std::ostream& os) const { // NOLINT | 625 std::ostream& HInstruction::PrintTo(std::ostream& os) const { // NOLINT |
637 os << Mnemonic() << " "; | 626 os << Mnemonic() << " "; |
638 PrintDataTo(os) << ChangesOf(this) << TypeOf(this); | 627 PrintDataTo(os) << ChangesOf(this) << TypeOf(this); |
639 if (CheckFlag(HValue::kHasNoObservableSideEffects)) os << " [noOSE]"; | 628 if (CheckFlag(HValue::kHasNoObservableSideEffects)) os << " [noOSE]"; |
640 if (CheckFlag(HValue::kIsDead)) os << " [dead]"; | 629 if (CheckFlag(HValue::kIsDead)) os << " [dead]"; |
641 return os; | 630 return os; |
642 } | 631 } |
643 | 632 |
644 | 633 |
645 std::ostream& HInstruction::PrintDataTo(std::ostream& os) const { // NOLINT | 634 std::ostream& HInstruction::PrintDataTo(std::ostream& os) const { // NOLINT |
(...skipping 1163 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1809 Range* HConstant::InferRange(Zone* zone) { | 1798 Range* HConstant::InferRange(Zone* zone) { |
1810 if (HasInteger32Value()) { | 1799 if (HasInteger32Value()) { |
1811 Range* result = new(zone) Range(int32_value_, int32_value_); | 1800 Range* result = new(zone) Range(int32_value_, int32_value_); |
1812 result->set_can_be_minus_zero(false); | 1801 result->set_can_be_minus_zero(false); |
1813 return result; | 1802 return result; |
1814 } | 1803 } |
1815 return HValue::InferRange(zone); | 1804 return HValue::InferRange(zone); |
1816 } | 1805 } |
1817 | 1806 |
1818 | 1807 |
1819 HSourcePosition HPhi::position() const { | 1808 SourcePosition HPhi::position() const { return block()->first()->position(); } |
1820 return block()->first()->position(); | |
1821 } | |
1822 | 1809 |
1823 | 1810 |
1824 Range* HPhi::InferRange(Zone* zone) { | 1811 Range* HPhi::InferRange(Zone* zone) { |
1825 Representation r = representation(); | 1812 Representation r = representation(); |
1826 if (r.IsSmiOrInteger32()) { | 1813 if (r.IsSmiOrInteger32()) { |
1827 if (block()->IsLoopHeader()) { | 1814 if (block()->IsLoopHeader()) { |
1828 Range* range = r.IsSmi() | 1815 Range* range = r.IsSmi() |
1829 ? new(zone) Range(Smi::kMinValue, Smi::kMaxValue) | 1816 ? new(zone) Range(Smi::kMinValue, Smi::kMaxValue) |
1830 : new(zone) Range(kMinInt, kMaxInt); | 1817 : new(zone) Range(kMinInt, kMaxInt); |
1831 return range; | 1818 return range; |
(...skipping 2984 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4816 break; | 4803 break; |
4817 case HObjectAccess::kExternalMemory: | 4804 case HObjectAccess::kExternalMemory: |
4818 os << "[external-memory]"; | 4805 os << "[external-memory]"; |
4819 break; | 4806 break; |
4820 } | 4807 } |
4821 | 4808 |
4822 return os << "@" << access.offset(); | 4809 return os << "@" << access.offset(); |
4823 } | 4810 } |
4824 | 4811 |
4825 } } // namespace v8::internal | 4812 } } // namespace v8::internal |
OLD | NEW |