Lines Matching refs:transition

1124      an rtx X.  Some also take as input a transition label LABEL; the others
1125 are booleans for which the transition label is always "true".
1437 /* A simple set of transition labels. Most transitions have a singleton
1507 /* Represents a transition between states, dependent on the result of
1509 class transition
1512 transition (const int_set &, state *, bool);
1514 void set_parent (list_head <transition> *);
1517 transition *prev, *next;
1519 /* The transition should be taken when T has one of these values.
1546 If a transition exists for the test outcome, the machine switches
1547 to the transition's target state. If no suitable transition exists,
1550 class decision : public list_head <transition>
1577 transition::transition (const int_set &labels_in, state *to_in,
1582 /* Set the source decision of the transition. */
1585 transition::set_parent (list_head <transition> *from_in)
1601 /* Return true if the decision has a single transition with a single label.
1616 /* Add to FROM a decision that performs TEST and has a single transition
1620 add_decision (state *from, const rtx_test &test, transition *trans)
1627 /* Add a transition from FROM to a new, empty state that is taken
1628 when TEST == LABELS. OPTIONAL says whether the new transition
1635 add_decision (from, test, new transition (labels, to, optional));
1640 TEST == LABELS. OPTIONAL says whether the new transition should be
1649 newd->push_back (new transition (labels, news, optional));
1664 for (transition *trans = d->first; trans; trans = trans->next)
1666 /* A decision with a single optional transition doesn't help
1676 In both cases the optional transition would add extra work to
1678 if (transition *trans = d->singleton ())
1722 if (transition *trans = d->singleton ())
1729 transition *trans2 = d2->singleton ();
1742 for (transition *trans = d->first; trans; trans = trans->next)
1754 common_test_p (decision *d, transition *common, vec <transition *> *where)
1761 transition *trans = d->singleton ();
1769 for (transition *trans = d->first; trans; trans = trans->next)
1799 first path from D (i.e. always following the first transition
1877 /* Look for a transition that is taken by all successful returns from a range
1879 OUTER's state instead. On success, store all instances of that transition
1886 with a single transition. KC are the conditions that are known to
1892 known_conditions *kc, vec <transition *> *where)
1907 transition *trans = d->singleton ();
1952 auto_vec <transition *, 16> where;
1973 transition *common = where[0];
1983 transition *trans = where.pop ();
2026 for (transition *trans = d->first; trans; trans = trans->next)
2104 for (transition *trans = d->first; trans; trans = trans->next)
2150 for (transition *trans = d->first; trans; trans = trans->next)
2154 /* Each transition is mutually-exclusive, so just pick the
2252 /* Represents a transition from one pattern to another. */
2274 replace transition labels with parameters. */
2284 /* If PARAM_TRANSITION_P, the state's single transition label should
2292 /* Likewise for the root decision's transition, as per PARAM_TRANSITION. */
2323 transitions. TRANSITIONS[I] describes the subpattern for transition
2324 number I; it is null if transition I represents a successful return
2389 /* Index I gives information about the target of transition I. */
2761 transition *trans1 = d1->first;
2762 transition *trans2 = d2->first;
2767 /* We can only generalize a single transition with a single
2995 for (transition *trans = d->first; trans; trans = trans->next)
2997 /* Create a new state to act as the target of the new transition. */
3033 /* Add a transition for each successful call result. */
3038 subd->push_back (new transition (j, res, false));
3043 /* This transition corresponds to a successful match. */
3046 /* Create the transition itself, generalizing as necessary. */
3047 transition *new_trans = new transition (trans->labels, to_news,
3075 for (transition *trans = d->first; trans; trans = trans->next)
3082 /* The transition corresponds to a successful return from the
3084 use->push_back (new transition (cpi->next_result, trans->to, false));
3127 for (transition *trans = d->first; trans; trans = trans->next)
3377 /* Pairs a transition with information about its target state. */
3378 typedef std::pair <transition *, state_size> subroutine_candidate;
3421 for (transition *trans = d->first; trans; trans = trans->next)
3550 the transition from D2. */
3551 transition *trans2 = d2->singleton ();
3552 for (transition *trans1 = d1->first; trans1; trans1 = trans1->next)
3577 for (transition *trans1 = d1->first; trans1; trans1 = trans1->next)
3585 Fail only if EXCLUDE is nonnull and the new transition would have the
3596 transition *trans2 = d2->singleton ();
3599 auto_vec <transition *, 32> intersecting;
3600 for (transition *trans1 = d1->first; trans1; trans1 = trans1->next)
3632 /* There's already a transition that matches exactly.
3644 make sure that we don't end up creating another transition
3672 transition *trans1 = intersecting[i];
3683 /* Stop now if we've been told not to create a transition with these
3688 /* Get the transition that should carry the new labels. */
3689 transition *new_trans = intersecting[0];
3692 /* We're merging with one existing transition whose labels are a
3701 If instead the existing transition is not optional, ensure that
3708 transition would have been non-optional and the (eq ...) test
3710 transition.
3712 The remaining case -- keeping the original optional transition
3714 the optional transition only helps if we later merge another
3718 optional transition around for that case, but it occurs very
3736 new_d->push_back (new transition (new_trans->labels, new_s,
3755 /* We're merging more than one existing transition together.
3759 Create a new transition with the union set of labels and make
3768 new_trans = new transition (*combined, new_s, true);
3772 /* We now have an optional transition with labels *COMBINED. Decide
3786 /* Try to merge TRANS2 into the target of the overlapping transition,
3788 creating another transition of the same type. */
3798 transition with the same test as S2's decision and with the labels
3846 it would involve creating a new transition with
3855 transition *sub_trans2 = sub_d2->singleton ();
4426 such that the transition for pattern result N goes to a successful return
4429 a transition for every successful return.) */
4439 for (transition *trans = d->first; trans; trans = trans->next)
4679 /* IS_PARAM and LABEL are taken from a transition whose source
4960 /* Handle decisions with a single transition and a single transition
4964 transition *trans = d->singleton ();
5002 "if" body and fall through to the target of the transition. */
5011 /* The target of the transition is a simple "return" statement.
5020 /* The general case. Output code for the target of the transition
5049 for (transition *trans = d->first; trans; trans = trans->next)
5111 for (transition *trans = d->first; trans; trans = trans->next)