Mercurial > hg > graal-compiler
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(); |