| Index: src/compiler/escape-analysis.h
|
| diff --git a/src/compiler/escape-analysis.h b/src/compiler/escape-analysis.h
|
| index ce372b598ade5262a80e328f6d184b94ba6dc029..9a91d1a07a6b3a017462e5586e5a9d97247421da 100644
|
| --- a/src/compiler/escape-analysis.h
|
| +++ b/src/compiler/escape-analysis.h
|
| @@ -16,6 +16,7 @@ namespace compiler {
|
| class CommonOperatorBuilder;
|
| class EscapeAnalysis;
|
| class VirtualState;
|
| +class VirtualObject;
|
|
|
|
|
| // EscapeStatusAnalysis determines for each allocation whether it escapes.
|
| @@ -46,8 +47,11 @@ class EscapeStatusAnalysis {
|
| void ProcessAllocate(Node* node);
|
| void ProcessFinishRegion(Node* node);
|
| void ProcessStoreField(Node* node);
|
| - bool CheckUsesForEscape(Node* node) { return CheckUsesForEscape(node, node); }
|
| - bool CheckUsesForEscape(Node* node, Node* rep);
|
| + void ProcessStoreElement(Node* node);
|
| + bool CheckUsesForEscape(Node* node, bool phi_escaping = false) {
|
| + return CheckUsesForEscape(node, node, phi_escaping);
|
| + }
|
| + bool CheckUsesForEscape(Node* node, Node* rep, bool phi_escaping = false);
|
| void RevisitUses(Node* node);
|
| void RevisitInputs(Node* node);
|
| bool SetEscaped(Node* node);
|
| @@ -87,17 +91,28 @@ class EscapeAnalysis {
|
| bool Process(Node* node);
|
| void ProcessLoadField(Node* node);
|
| void ProcessStoreField(Node* node);
|
| + void ProcessLoadElement(Node* node);
|
| + void ProcessStoreElement(Node* node);
|
| + void ProcessAllocationUsers(Node* node);
|
| void ProcessAllocation(Node* node);
|
| void ProcessFinishRegion(Node* node);
|
| void ProcessCall(Node* node);
|
| void ProcessStart(Node* node);
|
| bool ProcessEffectPhi(Node* node);
|
| + void ProcessLoadFromPhi(int offset, Node* from, Node* node,
|
| + VirtualState* states);
|
| +
|
| void ForwardVirtualState(Node* node);
|
| +
|
| bool IsEffectBranchPoint(Node* node);
|
| bool IsDanglingEffectNode(Node* node);
|
| int OffsetFromAccess(Node* node);
|
|
|
| + VirtualObject* GetVirtualObject(Node* at, NodeId id);
|
| +
|
| void DebugPrint();
|
| + void DebugPrintState(VirtualState* state);
|
| + void DebugPrintObject(VirtualObject* state, NodeId id);
|
|
|
| Graph* graph() const { return graph_; }
|
| CommonOperatorBuilder* common() const { return common_; }
|
|
|