< prev index next >

src/hotspot/share/opto/loopopts.cpp

Print this page

        

*** 880,904 **** // Do the real work in a non-recursive function. Data nodes want to be // cloned in the pre-order so they can feed each other nicely. Node *PhaseIdealLoop::split_if_with_blocks_pre( Node *n ) { // Cloning these guys is unlikely to win int n_op = n->Opcode(); - if( n_op == Op_MergeMem ) return n; if( n->is_Proj() ) return n; // Do not clone-up CmpFXXX variations, as these are always // followed by a CmpI if( n->is_Cmp() ) return n; // Attempt to use a conditional move instead of a phi/branch if( ConditionalMoveLimit > 0 && n_op == Op_Region ) { Node *cmov = conditional_move( n ); if( cmov ) return cmov; } ! ! if (n->is_CFG() || n->is_LoadStore()) { return n; - } if( n_op == Op_Opaque1 || // Opaque nodes cannot be mod'd n_op == Op_Opaque2 ) { if( !C->major_progress() ) // If chance of no more loop opts... _igvn._worklist.push(n); // maybe we'll remove them return n; --- 880,901 ---- // Do the real work in a non-recursive function. Data nodes want to be // cloned in the pre-order so they can feed each other nicely. Node *PhaseIdealLoop::split_if_with_blocks_pre( Node *n ) { // Cloning these guys is unlikely to win int n_op = n->Opcode(); if( n_op == Op_MergeMem ) return n; if( n->is_Proj() ) return n; // Do not clone-up CmpFXXX variations, as these are always // followed by a CmpI if( n->is_Cmp() ) return n; // Attempt to use a conditional move instead of a phi/branch if( ConditionalMoveLimit > 0 && n_op == Op_Region ) { Node *cmov = conditional_move( n ); if( cmov ) return cmov; } ! if( n->is_CFG() || n->is_LoadStore() ) return n; if( n_op == Op_Opaque1 || // Opaque nodes cannot be mod'd n_op == Op_Opaque2 ) { if( !C->major_progress() ) // If chance of no more loop opts... _igvn._worklist.push(n); // maybe we'll remove them return n;
*** 1553,1563 **** // Check for an IF being dominated by another IF same test if (n_op == Op_If || n_op == Op_RangeCheck) { Node *bol = n->in(1); uint max = bol->outcnt(); - // Check for same test used more than once? if (max > 1 && bol->is_Bool()) { // Search up IDOMs to see if this IF is dominated. Node *cutoff = get_ctrl(bol); --- 1550,1559 ----
< prev index next >