| 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 {
|
|
|