Mercurial > hg > graal-jvmci-8
comparison src/share/vm/c1/c1_Optimizer.cpp @ 4764:e5ac210043cd
7123108: C1: assert(if_state != NULL) failed: states do not match up
Summary: In CEE, ensure if and common successor state are at the same inline level
Reviewed-by: never
author | roland |
---|---|
date | Thu, 22 Dec 2011 10:55:53 +0100 |
parents | 7bca37d28f32 |
children | 701a83c86f28 |
comparison
equal
deleted
inserted
replaced
4763:1dc233a8c7fe | 4764:e5ac210043cd |
---|---|
123 | 123 |
124 // check if at least one word was pushed on sux_state | 124 // check if at least one word was pushed on sux_state |
125 // inlining depths must match | 125 // inlining depths must match |
126 ValueStack* if_state = if_->state(); | 126 ValueStack* if_state = if_->state(); |
127 ValueStack* sux_state = sux->state(); | 127 ValueStack* sux_state = sux->state(); |
128 while (sux_state->scope() != if_state->scope()) { | 128 if (if_state->scope()->level() > sux_state->scope()->level()) { |
129 if_state = if_state->caller_state(); | 129 while (sux_state->scope() != if_state->scope()) { |
130 assert(if_state != NULL, "states do not match up"); | 130 if_state = if_state->caller_state(); |
131 assert(if_state != NULL, "states do not match up"); | |
132 } | |
133 } else if (if_state->scope()->level() < sux_state->scope()->level()) { | |
134 while (sux_state->scope() != if_state->scope()) { | |
135 sux_state = sux_state->caller_state(); | |
136 assert(sux_state != NULL, "states do not match up"); | |
137 } | |
131 } | 138 } |
132 | 139 |
133 if (sux_state->stack_size() <= if_state->stack_size()) return; | 140 if (sux_state->stack_size() <= if_state->stack_size()) return; |
134 | 141 |
135 // check if phi function is present at end of successor stack and that | 142 // check if phi function is present at end of successor stack and that |