diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2005-03-31 23:26:33 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2005-03-31 23:26:33 +0000 |
commit | 96ddf8ef2326b2da28955873ff0b5ab921f481c0 (patch) | |
tree | 15ba83c430e72fa4e12a0498791b5840382d54ee /gcc/genautomata.c | |
parent | b08ee07eb26a89c19c5c245fbc04f3935f271363 (diff) | |
download | gcc-96ddf8ef2326b2da28955873ff0b5ab921f481c0.zip gcc-96ddf8ef2326b2da28955873ff0b5ab921f481c0.tar.gz gcc-96ddf8ef2326b2da28955873ff0b5ab921f481c0.tar.bz2 |
re PR target/20632 (GCC should avoid generating F- and B-unit NOPs)
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.
From-SVN: r97351
Diffstat (limited to 'gcc/genautomata.c')
-rw-r--r-- | gcc/genautomata.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/gcc/genautomata.c b/gcc/genautomata.c index e54cbbd..ac1f69c 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 |