hotspot/src/share/vm/opto/superword.cpp
changeset 31405 594c1ae9477e
parent 31403 7bf7e00a1aac
child 31520 4a6cbcae9f46
equal deleted inserted replaced
31404:63e8fcd70bfc 31405:594c1ae9477e
   182       is_slp = false;
   182       is_slp = false;
   183       break;
   183       break;
   184     }
   184     }
   185 
   185 
   186     if (n->is_Mem()) {
   186     if (n->is_Mem()) {
       
   187       MemNode* current = n->as_Mem();
       
   188       BasicType bt = current->memory_type();
       
   189       if (is_java_primitive(bt) == false) {
       
   190         ignored_loop_nodes[i] = n->_idx;
       
   191         continue;
       
   192       }
   187       Node* adr = n->in(MemNode::Address);
   193       Node* adr = n->in(MemNode::Address);
   188       Node* n_ctrl = _phase->get_ctrl(adr);
   194       Node* n_ctrl = _phase->get_ctrl(adr);
   189 
   195 
   190       // save a queue of post process nodes
   196       // save a queue of post process nodes
   191       if (n_ctrl != NULL && lpt()->is_member(_phase->get_loop(n_ctrl))) {
   197       if (n_ctrl != NULL && lpt()->is_member(_phase->get_loop(n_ctrl))) {
   192         MemNode* current = n->as_Mem();
       
   193         BasicType bt = current->memory_type();
       
   194         if (is_java_primitive(bt) == false) {
       
   195           ignored_loop_nodes[i] = n->_idx;
       
   196           continue;
       
   197         }
       
   198 
       
   199         // Process the memory expression
   198         // Process the memory expression
   200         int stack_idx = 0;
   199         int stack_idx = 0;
   201         bool have_side_effects = true;
   200         bool have_side_effects = true;
   202         if (adr->is_AddP() == false) {
   201         if (adr->is_AddP() == false) {
   203           nstack.push(adr, stack_idx++);
   202           nstack.push(adr, stack_idx++);
   232 
   231 
   233       BasicType bt;
   232       BasicType bt;
   234       Node* n = lpt()->_body.at(i);
   233       Node* n = lpt()->_body.at(i);
   235       if (n->is_Store()) {
   234       if (n->is_Store()) {
   236         bt = n->as_Mem()->memory_type();
   235         bt = n->as_Mem()->memory_type();
   237       }
   236       } else {
   238       else {
       
   239         bt = n->bottom_type()->basic_type();
   237         bt = n->bottom_type()->basic_type();
   240       }
   238       }
   241 
   239 
   242       int cur_max_vector = Matcher::max_vector_size(bt);
   240       int cur_max_vector = Matcher::max_vector_size(bt);
   243 
   241