comparison src/share/vm/opto/superword.cpp @ 17896:42274879e644

8041351: Crash in src/share/vm/opto/loopnode.cpp:3215 - assert(!had_error) failed: bad dominance Summary: add missing is_mem() check when we collect load nodes in SuperWord::co_locate_pack(). Reviewed-by: iveresov
author kvn
date Tue, 22 Apr 2014 17:45:56 -0700
parents 55fb97c4c58d
children 52b4284cb496 b1bc1af04c6e
comparison
equal deleted inserted replaced
17895:31e28ee4c9b4 17896:42274879e644
1260 // Following code moves loads connected to upper_insert_pt below aliased stores. 1260 // Following code moves loads connected to upper_insert_pt below aliased stores.
1261 // Collect such loads here and reconnect them back to upper_insert_pt later. 1261 // Collect such loads here and reconnect them back to upper_insert_pt later.
1262 memops.clear(); 1262 memops.clear();
1263 for (DUIterator i = upper_insert_pt->outs(); upper_insert_pt->has_out(i); i++) { 1263 for (DUIterator i = upper_insert_pt->outs(); upper_insert_pt->has_out(i); i++) {
1264 Node* use = upper_insert_pt->out(i); 1264 Node* use = upper_insert_pt->out(i);
1265 if (!use->is_Store()) 1265 if (use->is_Mem() && !use->is_Store()) {
1266 memops.push(use); 1266 memops.push(use);
1267 }
1267 } 1268 }
1268 1269
1269 MemNode* lower_insert_pt = last; 1270 MemNode* lower_insert_pt = last;
1270 previous = last; //previous store in pk 1271 previous = last; //previous store in pk
1271 current = last->in(MemNode::Memory)->as_Mem(); 1272 current = last->in(MemNode::Memory)->as_Mem();