Index: src/compiler/escape-analysis-reducer.cc |
diff --git a/src/compiler/escape-analysis-reducer.cc b/src/compiler/escape-analysis-reducer.cc |
index c69b86c488ddfb7ccb7016f0d6ac984be28e4ffe..a2b53c0b875b5b54e9feac606e3939cab6f9226a 100644 |
--- a/src/compiler/escape-analysis-reducer.cc |
+++ b/src/compiler/escape-analysis-reducer.cc |
@@ -305,6 +305,11 @@ Node* EscapeAnalysisReducer::ReduceStateValueInput(Node* node, int node_index, |
if (input->opcode() == IrOpcode::kFinishRegion || |
input->opcode() == IrOpcode::kAllocate) { |
if (escape_analysis()->IsVirtual(input)) { |
+ if (escape_analysis()->IsCyclicObjectState(effect, input)) { |
+ // TODO(mstarzinger): Represent cyclic object states differently to |
+ // ensure the scheduler can properly handle such object states. |
+ FATAL("Cyclic object state detected by escape analysis."); |
+ } |
if (Node* object_state = |
escape_analysis()->GetOrCreateObjectState(effect, input)) { |
if (node_multiused || (multiple_users && !already_cloned)) { |