src/hotspot/share/opto/cfgnode.cpp
changeset 52224 4f2215a00ed1
parent 52143 ad6384355aa3
child 52233 d682023cdd8c
equal deleted inserted replaced
52223:d0983f073c54 52224:4f2215a00ed1
    22  *
    22  *
    23  */
    23  */
    24 
    24 
    25 #include "precompiled.hpp"
    25 #include "precompiled.hpp"
    26 #include "classfile/systemDictionary.hpp"
    26 #include "classfile/systemDictionary.hpp"
       
    27 #include "gc/shared/c2/barrierSetC2.hpp"
    27 #include "memory/allocation.inline.hpp"
    28 #include "memory/allocation.inline.hpp"
    28 #include "memory/resourceArea.hpp"
    29 #include "memory/resourceArea.hpp"
    29 #include "oops/objArrayKlass.hpp"
    30 #include "oops/objArrayKlass.hpp"
    30 #include "opto/addnode.hpp"
    31 #include "opto/addnode.hpp"
    31 #include "opto/castnode.hpp"
    32 #include "opto/castnode.hpp"
  1445   } else if( b->_test._test == BoolTest::eq ) {
  1446   } else if( b->_test._test == BoolTest::eq ) {
  1446     flipped = 1-flipped;
  1447     flipped = 1-flipped;
  1447   } else return NULL;
  1448   } else return NULL;
  1448 
  1449 
  1449   // Build int->bool conversion
  1450   // Build int->bool conversion
  1450   Node *n = new Conv2BNode( cmp->in(1) );
  1451   Node *in1 = cmp->in(1);
       
  1452   BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2();
       
  1453   in1 = bs->step_over_gc_barrier(in1);
       
  1454   Node *n = new Conv2BNode(in1);
  1451   if( flipped )
  1455   if( flipped )
  1452     n = new XorINode( phase->transform(n), phase->intcon(1) );
  1456     n = new XorINode( phase->transform(n), phase->intcon(1) );
  1453 
  1457 
  1454   return n;
  1458   return n;
  1455 }
  1459 }
  1811       if (n != top) {           // Not already top?
  1815       if (n != top) {           // Not already top?
  1812         PhaseIterGVN *igvn = phase->is_IterGVN();
  1816         PhaseIterGVN *igvn = phase->is_IterGVN();
  1813         if (can_reshape && igvn != NULL) {
  1817         if (can_reshape && igvn != NULL) {
  1814           igvn->_worklist.push(r);
  1818           igvn->_worklist.push(r);
  1815         }
  1819         }
  1816         set_req(j, top);        // Nuke it down
  1820         // Nuke it down
       
  1821         if (can_reshape) {
       
  1822           set_req_X(j, top, igvn);
       
  1823         } else {
       
  1824           set_req(j, top);
       
  1825         }
  1817         progress = this;        // Record progress
  1826         progress = this;        // Record progress
  1818       }
  1827       }
  1819     }
  1828     }
  1820   }
  1829   }
  1821 
  1830