summaryrefslogtreecommitdiff
path: root/gcc/genautomata.c
diff options
context:
space:
mode:
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-31 23:26:33 +0000
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2005-03-31 23:26:33 +0000
commit17d386e4a66078b713967828c9c265c47317f440 (patch)
tree15ba83c430e72fa4e12a0498791b5840382d54ee /gcc/genautomata.c
parentda66db0dbf9bb8c640e54ce3c3d8f2ccbb614db9 (diff)
downloadgcc-17d386e4a66078b713967828c9c265c47317f440.tar.gz
2005-03-31 Vladimir Makarov <vmakarov@redhat.com>
PR target/20632 * genautomata.c (first_cycle_unit_presence): Check all alternative states for unit presence. * doc/md.texi: Remove remark about impossibility to query unit presence in non nondeterministic automaton state. * config/ia64/ia64.c (get_template): Change order of unit querying. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@97351 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/genautomata.c')
-rw-r--r--gcc/genautomata.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/gcc/genautomata.c b/gcc/genautomata.c
index e54cbbdaece..ac1f69cb285 100644
--- a/gcc/genautomata.c
+++ b/gcc/genautomata.c
@@ -6120,15 +6120,19 @@ copy_equiv_class (vla_ptr_t *to, const vla_ptr_t *from)
static int
first_cycle_unit_presence (state_t state, int unit_num)
{
- int presence_p;
+ alt_state_t alt_state;
if (state->component_states == NULL)
- presence_p = test_unit_reserv (state->reservs, 0, unit_num);
+ return test_unit_reserv (state->reservs, 0, unit_num);
else
- presence_p
- = test_unit_reserv (state->component_states->state->reservs,
- 0, unit_num);
- return presence_p;
+ {
+ for (alt_state = state->component_states;
+ alt_state != NULL;
+ alt_state = alt_state->next_sorted_alt_state)
+ if (test_unit_reserv (alt_state->state->reservs, 0, unit_num))
+ return true;
+ }
+ return false;
}
/* The function returns nonzero value if STATE is not equivalent to