< prev index next >

src/hotspot/share/opto/cfgnode.cpp

Print this page

        

*** 22,31 **** --- 22,32 ---- * */ #include "precompiled.hpp" #include "classfile/systemDictionary.hpp" + #include "gc/shared/c2/barrierSetC2.hpp" #include "memory/allocation.inline.hpp" #include "memory/resourceArea.hpp" #include "oops/objArrayKlass.hpp" #include "opto/addnode.hpp" #include "opto/castnode.hpp"
*** 1445,1455 **** } else if( b->_test._test == BoolTest::eq ) { flipped = 1-flipped; } else return NULL; // Build int->bool conversion ! Node *n = new Conv2BNode( cmp->in(1) ); if( flipped ) n = new XorINode( phase->transform(n), phase->intcon(1) ); return n; } --- 1446,1459 ---- } else if( b->_test._test == BoolTest::eq ) { flipped = 1-flipped; } else return NULL; // Build int->bool conversion ! Node *in1 = cmp->in(1); ! BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2(); ! in1 = bs->step_over_gc_barrier(in1); ! Node *n = new Conv2BNode(in1); if( flipped ) n = new XorINode( phase->transform(n), phase->intcon(1) ); return n; }
*** 1811,1821 **** if (n != top) { // Not already top? PhaseIterGVN *igvn = phase->is_IterGVN(); if (can_reshape && igvn != NULL) { igvn->_worklist.push(r); } ! set_req(j, top); // Nuke it down progress = this; // Record progress } } } --- 1815,1830 ---- if (n != top) { // Not already top? PhaseIterGVN *igvn = phase->is_IterGVN(); if (can_reshape && igvn != NULL) { igvn->_worklist.push(r); } ! // Nuke it down ! if (can_reshape) { ! set_req_X(j, top, igvn); ! } else { ! set_req(j, top); ! } progress = this; // Record progress } } }
< prev index next >