fn try_find_if_else_pair(&mut self) {
        let cctx = self.cctx;

        loop {
            let mut if_else_cond = None;
            'l: for (_, &(ca, ref wa)) in self.graph.node_references() {
                if wa.is_some() {
                    for (_, &(cb, ref wb)) in self.graph.node_references() {
                        if wb.is_some() {
                            let not_cb = cctx.mk_not(cb);
                            if ca == not_cb {
                                // found a pair
                                if_else_cond = Some((ca, cb));
                                break 'l;
                            }
                        }
                    }
                }
            }

            if let Some((cond, not_cond)) = if_else_cond {
                let _changed = self.try_group_by_cond(cond, not_cond);
                debug_assert!(_changed);
            } else {
                // no more groupings
                return;
            }
        }
    }
/// Repeatedly look for pairs of code nodes whose reaching conditions are
/// opposites group them into an `if-else` statement.
Repeatedly look for pairs of code nodes whose reaching conditions are
opposites group them into an `if-else` statement.
Repeatedly look for pairs of code nodes whose reaching conditions are opposites group them into an ` if - else ` statement .
fn try_find_if_else_pair(&mut self) {
        let cctx = self.cctx;
        loop {
            let mut if_else_cond = None;
            'l: for (_, &(ca, ref wa)) in self.graph.node_references() {
                if wa.is_some() {
                    for (_, &(cb, ref wb)) in self.graph.node_references() {
                        if wb.is_some() {
                            let not_cb = cctx.mk_not(cb);
                            if ca == not_cb {
                                // found a pair
                                if_else_cond = Some((ca, cb));
                                break 'l;
                            }
                        }
                    }
                }
            }
            if let Some((cond, not_cond)) = if_else_cond {
                let _changed = self.try_group_by_cond(cond, not_cond);
                debug_assert!(_changed);
            } else {
                // no more groupings
                return;
            }
        }
    }
fn try_find_if_else_pair ( & mut self ) { let cctx = self . cctx ; loop { let mut if_else_cond = None ; ' l : for ( _ , & ( ca , ref wa ) ) in self . graph . node_references ( ) { if wa . is_some ( ) { for ( _ , & ( cb , ref wb ) ) in self . graph . node_references ( ) { if wb . is_some ( ) { let not_cb = cctx . mk_not ( cb ) ; if ca == not_cb { // found a pair if_else_cond = Some ( ( ca , cb ) ) ; break ' l ; } } } } } if let Some ( ( cond , not_cond ) ) = if_else_cond { let _changed = self . try_group_by_cond ( cond , not_cond ) ; debug_assert ! ( _changed ) ; } else { // no more groupings return ; } } }
Repeatedly look for pairs of code nodes whose reaching conditions are
opposites group them into an `if-else` statement.
Repeatedly look for pairs of code nodes whose reaching conditions are opposites group them into an ` if - else ` statement .
&mut self
&mut self