< prev index next >

src/share/vm/opto/cfgnode.cpp

Print this page

        

*** 34,43 **** --- 34,47 ---- #include "opto/mulnode.hpp" #include "opto/phaseX.hpp" #include "opto/regmask.hpp" #include "opto/runtime.hpp" #include "opto/subnode.hpp" + #if INCLUDE_ALL_GCS + #include "gc_implementation/shenandoah/c2/shenandoahBarrierSetC2.hpp" + #include "gc_implementation/shenandoah/c2/shenandoahSupport.hpp" + #endif // Portions of code courtesy of Clifford Click // Optimization - Graph Style
*** 586,595 **** --- 590,602 ---- assert( n->req() == 2 && n->in(1) != NULL, "Only one data input expected" ); in = n->in(1); // replaced by unique input if( n->as_Phi()->is_unsafe_data_reference(in) ) in = phase->C->top(); // replaced by top } + if (n->outcnt() == 0) { + in = phase->C->top(); + } igvn->replace_node(n, in); } else if( n->is_Region() ) { // Update all incoming edges assert( !igvn->eqv(n, this), "Must be removed from DefUse edges"); uint uses_found = 0;
*** 1626,1636 **** 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 } } } --- 1633,1648 ---- 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 >