Index: src/compiler/escape-analysis.h |
diff --git a/src/compiler/escape-analysis.h b/src/compiler/escape-analysis.h |
index 93b06627b17e5330fffde8213c3def64b380d50f..bba5d98543f94b8545fe9d68fb33fed4c7b09d6e 100644 |
--- a/src/compiler/escape-analysis.h |
+++ b/src/compiler/escape-analysis.h |
@@ -18,7 +18,6 @@ class EscapeAnalysis; |
class VirtualState; |
class VirtualObject; |
- |
// EscapeStatusAnalysis determines for each allocation whether it escapes. |
class EscapeStatusAnalysis { |
public: |
@@ -39,14 +38,19 @@ class EscapeStatusAnalysis { |
// effect successors. |
kBranchPointComputed = 1u << 6, |
kBranchPoint = 1u << 7, |
+ kInQueue = 1u << 8 |
}; |
- typedef base::Flags<Status, unsigned char> StatusFlags; |
+ typedef base::Flags<Status, uint16_t> StatusFlags; |
void RunStatusAnalysis(); |
bool IsVirtual(Node* node); |
bool IsEscaped(Node* node); |
bool IsAllocation(Node* node); |
+ |
+ bool IsInQueue(NodeId id); |
+ void SetInQueue(NodeId id, bool on_stack); |
+ |
void DebugPrint(); |
EscapeStatusAnalysis(EscapeAnalysis* object_analysis, Graph* graph, |
@@ -102,14 +106,11 @@ class EscapeStatusAnalysis { |
DISALLOW_COPY_AND_ASSIGN(EscapeStatusAnalysis); |
}; |
- |
DEFINE_OPERATORS_FOR_FLAGS(EscapeStatusAnalysis::StatusFlags) |
- |
// Forward Declaration. |
class MergeCache; |
- |
// EscapeObjectAnalysis simulates stores to determine values of loads if |
// an object is virtual and eliminated. |
class EscapeAnalysis { |