Mercurial > hg > graal-jvmci-8
comparison src/share/vm/opto/memnode.cpp @ 4064:670a74b863fc
7107042: assert(no_dead_loop) failed: dead loop detected
Summary: Use dead nodes elimination code in PhaseIdealLoop before executing EA.
Reviewed-by: never, twisti
author | kvn |
---|---|
date | Wed, 09 Nov 2011 07:25:51 -0800 |
parents | a92cdbac8b9e |
children | 1bd45abaa507 |
comparison
equal
deleted
inserted
replaced
4063:7e0e43cf86d6 | 4064:670a74b863fc |
---|---|
1419 return this; | 1419 return this; |
1420 } | 1420 } |
1421 const TypeOopPtr *t_oop = addr_t->isa_oopptr(); | 1421 const TypeOopPtr *t_oop = addr_t->isa_oopptr(); |
1422 if (can_reshape && opt_mem->is_Phi() && | 1422 if (can_reshape && opt_mem->is_Phi() && |
1423 (t_oop != NULL) && t_oop->is_known_instance_field()) { | 1423 (t_oop != NULL) && t_oop->is_known_instance_field()) { |
1424 PhaseIterGVN *igvn = phase->is_IterGVN(); | |
1425 if (igvn != NULL && igvn->_worklist.member(opt_mem)) { | |
1426 // Delay this transformation until memory Phi is processed. | |
1427 phase->is_IterGVN()->_worklist.push(this); | |
1428 return NULL; | |
1429 } | |
1424 // Split instance field load through Phi. | 1430 // Split instance field load through Phi. |
1425 Node* result = split_through_phi(phase); | 1431 Node* result = split_through_phi(phase); |
1426 if (result != NULL) return result; | 1432 if (result != NULL) return result; |
1427 } | 1433 } |
1428 } | 1434 } |