Lines Matching refs:def

43 bool PhaseChaitin::may_be_copy_of_callee( Node *def ) const {
58 if( def->is_Proj() && def->in(0)->is_Start() &&
59 _matcher.is_save_on_entry(lrgs(n2lidx(def)).reg()) )
61 if( def->is_Copy() ) // Copies carry value through
62 def = def->in(def->is_Copy());
63 else if( def->is_Phi() ) // Phis can merge it from any direction
64 def = def->in(1);
67 guarantee(def != NULL, "must not resurrect dead copy");
158 int PhaseChaitin::use_prior_register( Node *n, uint idx, Node *def, Block *current_block, Node_List &value, Node_List &regnd ) {
160 if( def == n->in(idx) ) return 0;
162 if( def->outcnt() == 0 ) return 0;
167 const LRG &def_lrg = lrgs(n2lidx(def));
172 if (!RegMask::is_vector(def->ideal_reg())) {
180 // Capture the old def in case it goes dead...
188 if( may_be_copy_of_callee(def) ) {
196 if( def != old2->in(idx2) ) return 0; // Chain of exactly 2 copies
199 // Use the new def
200 n->set_req(idx,def);
203 // Is old def now dead? We successfully yanked a copy?
261 // allocator will reuse the original def for multidef LRG instead
262 // of the current reaching def because it can't know it's safe to
264 // then it should use the current reaching def instead.
278 // never-clobbered original-def register)
552 // Improve reaching-def info. Occasionally post-alloc's liveness gives
554 // The presence of a live use essentially asserts that the use's def is
556 // advantage of this info to set a reaching def for the use-reg.
559 Node *def = n->in(k); // n->in(k) is a USE; def is the DEF for this USE
560 guarantee(def != NULL, "no disconnected nodes at this point");
561 uint useidx = n2lidx(def); // useidx is the live range index for this USE
567 while( (idx=def->is_Copy()) != 0 &&
568 def->in(idx) != NULL && // NULL should not happen
569 ureg == lrgs(n2lidx(def->in(idx))).reg() )
570 def = def->in(idx);
571 Node *valdef = skip_copies(def); // tighten up val through non-useless copies
572 value.map(ureg,valdef); // record improved reaching-def info
573 regnd.map(ureg, def);
575 uint def_ideal_reg = def->ideal_reg();
582 value.map(ureg_lo,valdef); // record improved reaching-def info
583 regnd.map(ureg_lo, def);