8229701: aarch64: C2 OSR compilation fails with "shouldn't process one node several times" in final graph reshaping

Reviewed-by: thartmann, kvn
This commit is contained in:
Roland Westrelin 2019-08-23 14:22:29 +02:00
parent af94e6e681
commit ec5451c117
2 changed files with 68 additions and 2 deletions

View file

@ -3471,7 +3471,7 @@ void Compile::final_graph_reshaping_main_switch(Node* n, Final_Reshape_Counts& f
// address computations.
n->as_Type()->set_type(TypeLong::INT);
ResourceMark rm;
Node_List wq;
Unique_Node_List wq;
wq.push(n);
for (uint next = 0; next < wq.size(); next++) {
Node *m = wq.at(next);
@ -3486,7 +3486,6 @@ void Compile::final_graph_reshaping_main_switch(Node* n, Final_Reshape_Counts& f
// redundant
for (DUIterator_Fast imax, i = k->fast_outs(imax); i < imax; i++) {
Node* u = k->fast_out(i);
assert(!wq.contains(u), "shouldn't process one node several times");
if (u->Opcode() == Op_LShiftL ||
u->Opcode() == Op_AddL ||
u->Opcode() == Op_SubL ||