Tue, 13 Sep 2011 11:46:51 -0700
7089632: assert(machtmp->outcnt() == 1) failed: expected for a MachTemp
Summary: Replace assert with check to delete MachTemp nodes only when they are really dead.
Reviewed-by: never
src/share/vm/opto/postaloc.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/src/share/vm/opto/postaloc.cpp Mon Sep 12 13:51:40 2011 -0700 1.2 +++ b/src/share/vm/opto/postaloc.cpp Tue Sep 13 11:46:51 2011 -0700 1.3 @@ -100,10 +100,13 @@ 1.4 Node *tmp = NULL; 1.5 for (uint i = 1; i < old->req(); i++) { 1.6 if (old->in(i)->is_MachTemp()) { 1.7 + // handle TEMP inputs 1.8 Node* machtmp = old->in(i); 1.9 - assert(machtmp->outcnt() == 1, "expected for a MachTemp"); 1.10 - blk_adjust += yank(machtmp, current_block, value, regnd); 1.11 - machtmp->disconnect_inputs(NULL); 1.12 + if (machtmp->outcnt() == 1) { 1.13 + assert(machtmp->unique_out() == old, "sanity"); 1.14 + blk_adjust += yank(machtmp, current_block, value, regnd); 1.15 + machtmp->disconnect_inputs(NULL); 1.16 + } 1.17 } else { 1.18 assert(tmp == NULL, "can't handle more non MachTemp inputs"); 1.19 tmp = old->in(i);