< prev index next >

src/hotspot/share/opto/macro.cpp

Print this page

        

*** 2572,2582 **** break; default: assert(n->Opcode() == Op_LoopLimit || n->Opcode() == Op_Opaque1 || n->Opcode() == Op_Opaque2 || ! n->Opcode() == Op_Opaque3, "unknown node type in macro list"); } assert(success == (C->macro_count() < old_macro_count), "elimination reduces macro count"); progress = progress || success; } } --- 2572,2584 ---- break; default: assert(n->Opcode() == Op_LoopLimit || n->Opcode() == Op_Opaque1 || n->Opcode() == Op_Opaque2 || ! n->Opcode() == Op_Opaque3 || ! BarrierSet::barrier_set()->barrier_set_c2()->is_gc_barrier_node(n), ! "unknown node type in macro list"); } assert(success == (C->macro_count() < old_macro_count), "elimination reduces macro count"); progress = progress || success; } }
*** 2654,2664 **** // before the allocate nodes are expanded. int macro_idx = C->macro_count() - 1; while (macro_idx >= 0) { Node * n = C->macro_node(macro_idx); assert(n->is_macro(), "only macro nodes expected here"); ! if (_igvn.type(n) == Type::TOP || n->in(0)->is_top() ) { // node is unreachable, so don't try to expand it C->remove_macro_node(n); } else if (n->is_ArrayCopy()){ int macro_count = C->macro_count(); expand_arraycopy_node(n->as_ArrayCopy()); --- 2656,2666 ---- // before the allocate nodes are expanded. int macro_idx = C->macro_count() - 1; while (macro_idx >= 0) { Node * n = C->macro_node(macro_idx); assert(n->is_macro(), "only macro nodes expected here"); ! if (_igvn.type(n) == Type::TOP || (n->in(0) != NULL && n->in(0)->is_top())) { // node is unreachable, so don't try to expand it C->remove_macro_node(n); } else if (n->is_ArrayCopy()){ int macro_count = C->macro_count(); expand_arraycopy_node(n->as_ArrayCopy());
*** 2672,2682 **** // nodes are removed from the macro list as they are processed while (C->macro_count() > 0) { int macro_count = C->macro_count(); Node * n = C->macro_node(macro_count-1); assert(n->is_macro(), "only macro nodes expected here"); ! if (_igvn.type(n) == Type::TOP || n->in(0)->is_top() ) { // node is unreachable, so don't try to expand it C->remove_macro_node(n); continue; } switch (n->class_id()) { --- 2674,2684 ---- // nodes are removed from the macro list as they are processed while (C->macro_count() > 0) { int macro_count = C->macro_count(); Node * n = C->macro_node(macro_count-1); assert(n->is_macro(), "only macro nodes expected here"); ! if (_igvn.type(n) == Type::TOP || (n->in(0) != NULL && n->in(0)->is_top())) { // node is unreachable, so don't try to expand it C->remove_macro_node(n); continue; } switch (n->class_id()) {
< prev index next >