Index: src/compiler/escape-analysis.h |
diff --git a/src/compiler/escape-analysis.h b/src/compiler/escape-analysis.h |
index ce372b598ade5262a80e328f6d184b94ba6dc029..f10a8f02689bf95b50309092817baea2c4c17e1f 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. |
@@ -81,6 +82,8 @@ class EscapeAnalysis { |
Node* GetReplacement(Node* at, NodeId id); |
bool IsVirtual(Node* node); |
bool IsEscaped(Node* node); |
+ Node* GetOrCreateObjectState(Node* effect, Node* node); |
+ Node* GetEffect(Node* node); |
private: |
void RunObjectAnalysis(); |
@@ -97,6 +100,10 @@ class EscapeAnalysis { |
bool IsDanglingEffectNode(Node* node); |
int OffsetFromAccess(Node* node); |
+ VirtualObject* GetVirtualObject(Node* at, NodeId id); |
+ |
+ void RecordEffectForFrameStateUses(Node* node, Node* effect); |
+ |
void DebugPrint(); |
Graph* graph() const { return graph_; } |
@@ -108,6 +115,7 @@ class EscapeAnalysis { |
Zone* const zone_; |
ZoneVector<VirtualState*> virtual_states_; |
EscapeStatusAnalysis escape_status_; |
+ ZoneVector<Node*> effects_; |
DISALLOW_COPY_AND_ASSIGN(EscapeAnalysis); |
}; |