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