# HG changeset patch # User kvn # Date 1434650969 25200 # Node ID 594c1ae9477e1d14b5017fbda5cc932b3daca923 # Parent 63e8fcd70bfc98e163a5307720878cdb94fad276 8129094: assert(is_java_primitive(bt)) failed: only primitive type vectors Summary: ignored non-primitive type memory operation regardless its (or its inputs) control. Reviewed-by: roland, mcberg diff -r 63e8fcd70bfc -r 594c1ae9477e hotspot/src/share/vm/opto/superword.cpp --- a/hotspot/src/share/vm/opto/superword.cpp Wed Jun 17 17:48:25 2015 -0700 +++ b/hotspot/src/share/vm/opto/superword.cpp Thu Jun 18 11:09:29 2015 -0700 @@ -184,18 +184,17 @@ } if (n->is_Mem()) { + MemNode* current = n->as_Mem(); + BasicType bt = current->memory_type(); + if (is_java_primitive(bt) == false) { + ignored_loop_nodes[i] = n->_idx; + continue; + } Node* adr = n->in(MemNode::Address); Node* n_ctrl = _phase->get_ctrl(adr); // save a queue of post process nodes if (n_ctrl != NULL && lpt()->is_member(_phase->get_loop(n_ctrl))) { - MemNode* current = n->as_Mem(); - BasicType bt = current->memory_type(); - if (is_java_primitive(bt) == false) { - ignored_loop_nodes[i] = n->_idx; - continue; - } - // Process the memory expression int stack_idx = 0; bool have_side_effects = true; @@ -234,8 +233,7 @@ Node* n = lpt()->_body.at(i); if (n->is_Store()) { bt = n->as_Mem()->memory_type(); - } - else { + } else { bt = n->bottom_type()->basic_type(); }