Lines Matching refs:transition

1122      an rtx X.  Some also take as input a transition label LABEL; the others
1123 are booleans for which the transition label is always "true".
1435 /* A simple set of transition labels. Most transitions have a singleton
1505 /* Represents a transition between states, dependent on the result of
1507 class transition
1510 transition (const int_set &, state *, bool);
1512 void set_parent (list_head <transition> *);
1515 transition *prev, *next;
1517 /* The transition should be taken when T has one of these values.
1544 If a transition exists for the test outcome, the machine switches
1545 to the transition's target state. If no suitable transition exists,
1548 class decision : public list_head <transition>
1575 transition::transition (const int_set &labels_in, state *to_in,
1580 /* Set the source decision of the transition. */
1583 transition::set_parent (list_head <transition> *from_in)
1599 /* Return true if the decision has a single transition with a single label.
1614 /* Add to FROM a decision that performs TEST and has a single transition
1618 add_decision (state *from, const rtx_test &test, transition *trans)
1625 /* Add a transition from FROM to a new, empty state that is taken
1626 when TEST == LABELS. OPTIONAL says whether the new transition
1633 add_decision (from, test, new transition (labels, to, optional));
1638 TEST == LABELS. OPTIONAL says whether the new transition should be
1647 newd->push_back (new transition (labels, news, optional));
1662 for (transition *trans = d->first; trans; trans = trans->next)
1664 /* A decision with a single optional transition doesn't help
1674 In both cases the optional transition would add extra work to
1676 if (transition *trans = d->singleton ())
1720 if (transition *trans = d->singleton ())
1727 transition *trans2 = d2->singleton ();
1740 for (transition *trans = d->first; trans; trans = trans->next)
1752 common_test_p (decision *d, transition *common, vec <transition *> *where)
1759 transition *trans = d->singleton ();
1767 for (transition *trans = d->first; trans; trans = trans->next)
1797 first path from D (i.e. always following the first transition
1875 /* Look for a transition that is taken by all successful returns from a range
1877 OUTER's state instead. On success, store all instances of that transition
1884 with a single transition. KC are the conditions that are known to
1890 known_conditions *kc, vec <transition *> *where)
1905 transition *trans = d->singleton ();
1950 auto_vec <transition *, 16> where;
1971 transition *common = where[0];
1981 transition *trans = where.pop ();
2024 for (transition *trans = d->first; trans; trans = trans->next)
2102 for (transition *trans = d->first; trans; trans = trans->next)
2148 for (transition *trans = d->first; trans; trans = trans->next)
2152 /* Each transition is mutually-exclusive, so just pick the
2250 /* Represents a transition from one pattern to another. */
2272 replace transition labels with parameters. */
2282 /* If PARAM_TRANSITION_P, the state's single transition label should
2290 /* Likewise for the root decision's transition, as per PARAM_TRANSITION. */
2321 transitions. TRANSITIONS[I] describes the subpattern for transition
2322 number I; it is null if transition I represents a successful return
2387 /* Index I gives information about the target of transition I. */
2759 transition *trans1 = d1->first;
2760 transition *trans2 = d2->first;
2765 /* We can only generalize a single transition with a single
2993 for (transition *trans = d->first; trans; trans = trans->next)
2995 /* Create a new state to act as the target of the new transition. */
3031 /* Add a transition for each successful call result. */
3036 subd->push_back (new transition (j, res, false));
3041 /* This transition corresponds to a successful match. */
3044 /* Create the transition itself, generalizing as necessary. */
3045 transition *new_trans = new transition (trans->labels, to_news,
3073 for (transition *trans = d->first; trans; trans = trans->next)
3080 /* The transition corresponds to a successful return from the
3082 use->push_back (new transition (cpi->next_result, trans->to, false));
3125 for (transition *trans = d->first; trans; trans = trans->next)
3375 /* Pairs a transition with information about its target state. */
3376 typedef std::pair <transition *, state_size> subroutine_candidate;
3419 for (transition *trans = d->first; trans; trans = trans->next)
3548 the transition from D2. */
3549 transition *trans2 = d2->singleton ();
3550 for (transition *trans1 = d1->first; trans1; trans1 = trans1->next)
3575 for (transition *trans1 = d1->first; trans1; trans1 = trans1->next)
3583 Fail only if EXCLUDE is nonnull and the new transition would have the
3594 transition *trans2 = d2->singleton ();
3597 auto_vec <transition *, 32> intersecting;
3598 for (transition *trans1 = d1->first; trans1; trans1 = trans1->next)
3630 /* There's already a transition that matches exactly.
3642 make sure that we don't end up creating another transition
3670 transition *trans1 = intersecting[i];
3681 /* Stop now if we've been told not to create a transition with these
3686 /* Get the transition that should carry the new labels. */
3687 transition *new_trans = intersecting[0];
3690 /* We're merging with one existing transition whose labels are a
3699 If instead the existing transition is not optional, ensure that
3706 transition would have been non-optional and the (eq ...) test
3708 transition.
3710 The remaining case -- keeping the original optional transition
3712 the optional transition only helps if we later merge another
3716 optional transition around for that case, but it occurs very
3734 new_d->push_back (new transition (new_trans->labels, new_s,
3753 /* We're merging more than one existing transition together.
3757 Create a new transition with the union set of labels and make
3766 new_trans = new transition (*combined, new_s, true);
3770 /* We now have an optional transition with labels *COMBINED. Decide
3784 /* Try to merge TRANS2 into the target of the overlapping transition,
3786 creating another transition of the same type. */
3796 transition with the same test as S2's decision and with the labels
3844 it would involve creating a new transition with
3853 transition *sub_trans2 = sub_d2->singleton ();
4424 such that the transition for pattern result N goes to a successful return
4427 a transition for every successful return.) */
4437 for (transition *trans = d->first; trans; trans = trans->next)
4677 /* IS_PARAM and LABEL are taken from a transition whose source
4958 /* Handle decisions with a single transition and a single transition
4962 transition *trans = d->singleton ();
5000 "if" body and fall through to the target of the transition. */
5009 /* The target of the transition is a simple "return" statement.
5018 /* The general case. Output code for the target of the transition
5047 for (transition *trans = d->first; trans; trans = trans->next)
5109 for (transition *trans = d->first; trans; trans = trans->next)