comparison src/share/vm/opto/chaitin.cpp @ 2016:361783318e7e

7004940: CTW: assert(!def_outside->member(r)) failed: Use of external LRG overlaps the same LRG Reviewed-by: kvn, twisti
author never
date Mon, 13 Dec 2010 22:41:03 -0800
parents f95d63e2154a
children 7e88bdae86ec
comparison
equal deleted inserted replaced
2015:79d8657be916 2016:361783318e7e
1780 // Dump LRG array 1780 // Dump LRG array
1781 tty->print("--- Live RanGe Array ---\n"); 1781 tty->print("--- Live RanGe Array ---\n");
1782 for(uint i2 = 1; i2 < _maxlrg; i2++ ) { 1782 for(uint i2 = 1; i2 < _maxlrg; i2++ ) {
1783 tty->print("L%d: ",i2); 1783 tty->print("L%d: ",i2);
1784 if( i2 < _ifg->_maxlrg ) lrgs(i2).dump( ); 1784 if( i2 < _ifg->_maxlrg ) lrgs(i2).dump( );
1785 else tty->print("new LRG"); 1785 else tty->print_cr("new LRG");
1786 } 1786 }
1787 tty->print_cr(""); 1787 tty->print_cr("");
1788 1788
1789 // Dump lo-degree list 1789 // Dump lo-degree list
1790 tty->print("Lo degree: "); 1790 tty->print("Lo degree: ");
1991 dump(b); 1991 dump(b);
1992 } 1992 }
1993 } 1993 }
1994 1994
1995 //------------------------------dump_lrg--------------------------------------- 1995 //------------------------------dump_lrg---------------------------------------
1996 void PhaseChaitin::dump_lrg( uint lidx ) const { 1996 void PhaseChaitin::dump_lrg( uint lidx, bool defs_only ) const {
1997 tty->print_cr("---dump of L%d---",lidx); 1997 tty->print_cr("---dump of L%d---",lidx);
1998 1998
1999 if( _ifg ) { 1999 if( _ifg ) {
2000 if( lidx >= _maxlrg ) { 2000 if( lidx >= _maxlrg ) {
2001 tty->print("Attempt to print live range index beyond max live range.\n"); 2001 tty->print("Attempt to print live range index beyond max live range.\n");
2002 return; 2002 return;
2003 } 2003 }
2004 tty->print("L%d: ",lidx); 2004 tty->print("L%d: ",lidx);
2005 lrgs(lidx).dump( ); 2005 if( lidx < _ifg->_maxlrg ) lrgs(lidx).dump( );
2006 } 2006 else tty->print_cr("new LRG");
2007 if( _ifg ) { tty->print("Neighbors: %d - ", _ifg->neighbor_cnt(lidx)); 2007 }
2008 if( _ifg && lidx < _ifg->_maxlrg) {
2009 tty->print("Neighbors: %d - ", _ifg->neighbor_cnt(lidx));
2008 _ifg->neighbors(lidx)->dump(); 2010 _ifg->neighbors(lidx)->dump();
2009 tty->cr(); 2011 tty->cr();
2010 } 2012 }
2011 // For all blocks 2013 // For all blocks
2012 for( uint i = 0; i < _cfg._num_blocks; i++ ) { 2014 for( uint i = 0; i < _cfg._num_blocks; i++ ) {
2022 b->dump_head( &_cfg._bbs ); 2024 b->dump_head( &_cfg._bbs );
2023 } 2025 }
2024 dump(n); 2026 dump(n);
2025 continue; 2027 continue;
2026 } 2028 }
2027 uint cnt = n->req(); 2029 if (!defs_only) {
2028 for( uint k = 1; k < cnt; k++ ) { 2030 uint cnt = n->req();
2029 Node *m = n->in(k); 2031 for( uint k = 1; k < cnt; k++ ) {
2030 if (!m) continue; // be robust in the dumper 2032 Node *m = n->in(k);
2031 if( Find_const(m) == lidx ) { 2033 if (!m) continue; // be robust in the dumper
2032 if( !dump_once++ ) { 2034 if( Find_const(m) == lidx ) {
2033 tty->cr(); 2035 if( !dump_once++ ) {
2034 b->dump_head( &_cfg._bbs ); 2036 tty->cr();
2037 b->dump_head( &_cfg._bbs );
2038 }
2039 dump(n);
2035 } 2040 }
2036 dump(n);
2037 } 2041 }
2038 } 2042 }
2039 } 2043 }
2040 } // End of per-block dump 2044 } // End of per-block dump
2041 tty->cr(); 2045 tty->cr();