src/share/vm/opto/idealKit.cpp

changeset 4868
30f42e691e70
parent 4153
b9a9ed0f8eeb
child 6198
55fb97c4c58d
child 6479
2113136690bc
     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  

mercurial