Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Unified Diff: src/compiler/escape-analysis.h

Issue 1485183002: [turbofan] Deopt support for escape analysis (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@ea-local
Patch Set: Fix --always-opt triggered bug Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
};

Powered by Google App Engine
This is Rietveld 408576698