Index: src/compiler.h |
diff --git a/src/compiler.h b/src/compiler.h |
index 9b439397c3c18f25503787d7476edff9ca95ec56..bda2f26c3e0469e89f11b7c83277a87d501a4af7 100644 |
--- a/src/compiler.h |
+++ b/src/compiler.h |
@@ -10,79 +10,18 @@ |
#include "src/bailout-reason.h" |
#include "src/compilation-dependencies.h" |
#include "src/signature.h" |
+#include "src/source-position.h" |
#include "src/zone.h" |
namespace v8 { |
namespace internal { |
-class AstValueFactory; |
-class HydrogenCodeStub; |
+// Forward declarations. |
class JavaScriptFrame; |
class ParseInfo; |
class ScriptData; |
-// This class encapsulates encoding and decoding of sources positions from |
-// which hydrogen values originated. |
-// When FLAG_track_hydrogen_positions is set this object encodes the |
-// identifier of the inlining and absolute offset from the start of the |
-// inlined function. |
-// When the flag is not set we simply track absolute offset from the |
-// script start. |
-class SourcePosition { |
- public: |
- static SourcePosition Unknown() { |
- return SourcePosition::FromRaw(kNoPosition); |
- } |
- |
- bool IsUnknown() const { return value_ == kNoPosition; } |
- |
- uint32_t position() const { return PositionField::decode(value_); } |
- void set_position(uint32_t position) { |
- if (FLAG_hydrogen_track_positions) { |
- value_ = static_cast<uint32_t>(PositionField::update(value_, position)); |
- } else { |
- value_ = position; |
- } |
- } |
- |
- uint32_t inlining_id() const { return InliningIdField::decode(value_); } |
- void set_inlining_id(uint32_t inlining_id) { |
- if (FLAG_hydrogen_track_positions) { |
- value_ = |
- static_cast<uint32_t>(InliningIdField::update(value_, inlining_id)); |
- } |
- } |
- |
- uint32_t raw() const { return value_; } |
- |
- private: |
- static const uint32_t kNoPosition = |
- static_cast<uint32_t>(RelocInfo::kNoPosition); |
- typedef BitField<uint32_t, 0, 9> InliningIdField; |
- |
- // Offset from the start of the inlined function. |
- typedef BitField<uint32_t, 9, 23> PositionField; |
- |
- friend class HPositionInfo; |
- friend class Deoptimizer; |
- |
- static SourcePosition FromRaw(uint32_t raw_position) { |
- SourcePosition position; |
- position.value_ = raw_position; |
- return position; |
- } |
- |
- // If FLAG_hydrogen_track_positions is set contains bitfields InliningIdField |
- // and PositionField. |
- // Otherwise contains absolute offset from the script start. |
- uint32_t value_; |
-}; |
- |
- |
-std::ostream& operator<<(std::ostream& os, const SourcePosition& p); |
- |
- |
struct InlinedFunctionInfo { |
InlinedFunctionInfo(int parent_id, SourcePosition inline_position, |
int script_id, int start_position) |