< prev index next >

src/share/vm/opto/compile.cpp

Print this page




3037           n->subsume_by(divmod->mod_proj(), this);
3038         } else {
3039           // replace a%b with a-((a/b)*b)
3040           Node* mult = new MulLNode(d, d->in(2));
3041           Node* sub  = new SubLNode(d->in(1), mult);
3042           n->subsume_by(sub, this);
3043         }
3044       }
3045     }
3046     break;
3047 
3048   case Op_LoadVector:
3049   case Op_StoreVector:
3050     break;
3051 
3052   case Op_AddReductionVI:
3053   case Op_AddReductionVL:
3054   case Op_AddReductionVF:
3055   case Op_AddReductionVD:
3056   case Op_MulReductionVI:

3057   case Op_MulReductionVF:
3058   case Op_MulReductionVD:
3059     break;
3060 
3061   case Op_PackB:
3062   case Op_PackS:
3063   case Op_PackI:
3064   case Op_PackF:
3065   case Op_PackL:
3066   case Op_PackD:
3067     if (n->req()-1 > 2) {
3068       // Replace many operand PackNodes with a binary tree for matching
3069       PackNode* p = (PackNode*) n;
3070       Node* btp = p->binary_tree_pack(1, n->req());
3071       n->subsume_by(btp, this);
3072     }
3073     break;
3074   case Op_Loop:
3075   case Op_CountedLoop:
3076     if (n->as_Loop()->is_inner_loop()) {




3037           n->subsume_by(divmod->mod_proj(), this);
3038         } else {
3039           // replace a%b with a-((a/b)*b)
3040           Node* mult = new MulLNode(d, d->in(2));
3041           Node* sub  = new SubLNode(d->in(1), mult);
3042           n->subsume_by(sub, this);
3043         }
3044       }
3045     }
3046     break;
3047 
3048   case Op_LoadVector:
3049   case Op_StoreVector:
3050     break;
3051 
3052   case Op_AddReductionVI:
3053   case Op_AddReductionVL:
3054   case Op_AddReductionVF:
3055   case Op_AddReductionVD:
3056   case Op_MulReductionVI:
3057   case Op_MulReductionVL:
3058   case Op_MulReductionVF:
3059   case Op_MulReductionVD:
3060     break;
3061 
3062   case Op_PackB:
3063   case Op_PackS:
3064   case Op_PackI:
3065   case Op_PackF:
3066   case Op_PackL:
3067   case Op_PackD:
3068     if (n->req()-1 > 2) {
3069       // Replace many operand PackNodes with a binary tree for matching
3070       PackNode* p = (PackNode*) n;
3071       Node* btp = p->binary_tree_pack(1, n->req());
3072       n->subsume_by(btp, this);
3073     }
3074     break;
3075   case Op_Loop:
3076   case Op_CountedLoop:
3077     if (n->as_Loop()->is_inner_loop()) {


< prev index next >