src/share/vm/opto/superword.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/superword.cpp Wed Jun 17 18:45:34 2015
--- new/src/share/vm/opto/superword.cpp Wed Jun 17 18:45:34 2015
*** 182,203 ****
--- 182,202 ----
is_slp = false;
break;
}
if (n->is_Mem()) {
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;
}
+ 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))) {
// Process the memory expression
int stack_idx = 0;
bool have_side_effects = true;
if (adr->is_AddP() == false) {
nstack.push(adr, stack_idx++);
*** 232,243 ****
--- 231,241 ----
BasicType bt;
Node* n = lpt()->_body.at(i);
if (n->is_Store()) {
bt = n->as_Mem()->memory_type();
}
else {
+ } else {
bt = n->bottom_type()->basic_type();
}
int cur_max_vector = Matcher::max_vector_size(bt);
src/share/vm/opto/superword.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File