Mercurial > hg > truffle
diff src/share/vm/opto/phaseX.cpp @ 113:ba764ed4b6f2
6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv
Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold
author | coleenp |
---|---|
date | Sun, 13 Apr 2008 17:43:42 -0400 |
parents | 99269dbf4ba8 |
children | d1605aabd0a1 |
line wrap: on
line diff
--- a/src/share/vm/opto/phaseX.cpp Fri Apr 11 09:56:35 2008 -0400 +++ b/src/share/vm/opto/phaseX.cpp Sun Apr 13 17:43:42 2008 -0400 @@ -744,20 +744,23 @@ //============================================================================= //------------------------------PhaseIterGVN----------------------------------- // Initialize hash table to fresh and clean for +VerifyOpto -PhaseIterGVN::PhaseIterGVN( PhaseIterGVN *igvn, const char *dummy ) : PhaseGVN(igvn,dummy), _worklist( ) { +PhaseIterGVN::PhaseIterGVN( PhaseIterGVN *igvn, const char *dummy ) : PhaseGVN(igvn,dummy), _worklist( ), + _delay_transform(false) { } //------------------------------PhaseIterGVN----------------------------------- // Initialize with previous PhaseIterGVN info; used by PhaseCCP PhaseIterGVN::PhaseIterGVN( PhaseIterGVN *igvn ) : PhaseGVN(igvn), - _worklist( igvn->_worklist ) + _worklist( igvn->_worklist ), + _delay_transform(igvn->_delay_transform) { } //------------------------------PhaseIterGVN----------------------------------- // Initialize with previous PhaseGVN info from Parser PhaseIterGVN::PhaseIterGVN( PhaseGVN *gvn ) : PhaseGVN(gvn), - _worklist(*C->for_igvn()) + _worklist(*C->for_igvn()), + _delay_transform(false) { uint max; @@ -953,6 +956,12 @@ //------------------------------transform-------------------------------------- // Non-recursive: idealize Node 'n' with respect to its inputs and its value Node *PhaseIterGVN::transform( Node *n ) { + if (_delay_transform) { + // Register the node but don't optimize for now + register_new_node_with_optimizer(n); + return n; + } + // If brand new node, make space in type array, and give it a type. ensure_type_or_null(n); if (type_or_null(n) == NULL) {