1.1 --- a/src/share/vm/opto/idealKit.cpp Tue Mar 26 10:05:33 2013 +0100 1.2 +++ b/src/share/vm/opto/idealKit.cpp Tue Mar 26 12:55:26 2013 -0700 1.3 @@ -48,9 +48,9 @@ 1.4 _cvstate = NULL; 1.5 // We can go memory state free or else we need the entire memory state 1.6 assert(_initial_memory == NULL || _initial_memory->Opcode() == Op_MergeMem, "memory must be pre-split"); 1.7 + assert(!_gvn.is_IterGVN(), "IdealKit can't be used during Optimize phase"); 1.8 int init_size = 5; 1.9 _pending_cvstates = new (C->node_arena()) GrowableArray<Node*>(C->node_arena(), init_size, 0, 0); 1.10 - _delay_transform = new (C->node_arena()) GrowableArray<Node*>(C->node_arena(), init_size, 0, 0); 1.11 DEBUG_ONLY(_state = new (C->node_arena()) GrowableArray<int>(C->node_arena(), init_size, 0, 0)); 1.12 if (!has_declarations) { 1.13 declarations_done(); 1.14 @@ -296,19 +296,16 @@ 1.15 return delay_transform(n); 1.16 } else { 1.17 n = gvn().transform(n); 1.18 - if (!gvn().is_IterGVN()) { 1.19 - C->record_for_igvn(n); 1.20 - } 1.21 + C->record_for_igvn(n); 1.22 return n; 1.23 } 1.24 } 1.25 1.26 //-----------------------------delay_transform----------------------------------- 1.27 Node* IdealKit::delay_transform(Node* n) { 1.28 - if (!gvn().is_IterGVN() || !gvn().is_IterGVN()->delay_transform()) { 1.29 - gvn().set_type(n, n->bottom_type()); 1.30 - } 1.31 - _delay_transform->push(n); 1.32 + // Delay transform until IterativeGVN 1.33 + gvn().set_type(n, n->bottom_type()); 1.34 + C->record_for_igvn(n); 1.35 return n; 1.36 } 1.37 1.38 @@ -332,17 +329,6 @@ 1.39 for (uint i = 0; i < m->req(); i++) m->set_req(i, NULL); 1.40 } 1.41 1.42 -//-----------------------------drain_delay_transform---------------------------- 1.43 -void IdealKit::drain_delay_transform() { 1.44 - while (_delay_transform->length() > 0) { 1.45 - Node* n = _delay_transform->pop(); 1.46 - gvn().transform(n); 1.47 - if (!gvn().is_IterGVN()) { 1.48 - C->record_for_igvn(n); 1.49 - } 1.50 - } 1.51 -} 1.52 - 1.53 //-----------------------------IdealVariable---------------------------- 1.54 IdealVariable::IdealVariable(IdealKit &k) { 1.55 k.declare(this); 1.56 @@ -351,9 +337,7 @@ 1.57 Node* IdealKit::memory(uint alias_idx) { 1.58 MergeMemNode* mem = merged_memory(); 1.59 Node* p = mem->memory_at(alias_idx); 1.60 - if (!gvn().is_IterGVN() || !gvn().is_IterGVN()->delay_transform()) { 1.61 - _gvn.set_type(p, Type::MEMORY); // must be mapped 1.62 - } 1.63 + _gvn.set_type(p, Type::MEMORY); // must be mapped 1.64 return p; 1.65 } 1.66