Commit e0e349f3 by Jan Hubicka Committed by Jan Hubicka

* sched-int.h (sd_iterator_cond): Manually tail recurse.

From-SVN: r210895
parent 06e3da34
2014-05-23 Jan Hubicka <hubicka@ucw.cz>
* sched-int.h (sd_iterator_cond): Manually tail recurse.
2014-05-23 Segher Boessenkool <segher@kernel.crashing.org> 2014-05-23 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/440.md (ppc440-integer): Include shift without * config/rs6000/440.md (ppc440-integer): Include shift without
......
...@@ -1550,34 +1550,37 @@ sd_iterator_start (rtx insn, sd_list_types_def types) ...@@ -1550,34 +1550,37 @@ sd_iterator_start (rtx insn, sd_list_types_def types)
static inline bool static inline bool
sd_iterator_cond (sd_iterator_def *it_ptr, dep_t *dep_ptr) sd_iterator_cond (sd_iterator_def *it_ptr, dep_t *dep_ptr)
{ {
dep_link_t link = *it_ptr->linkp; while (true)
if (link != NULL)
{
*dep_ptr = DEP_LINK_DEP (link);
return true;
}
else
{ {
sd_list_types_def types = it_ptr->types; dep_link_t link = *it_ptr->linkp;
if (types != SD_LIST_NONE) if (link != NULL)
/* Switch to next list. */ {
*dep_ptr = DEP_LINK_DEP (link);
return true;
}
else
{ {
deps_list_t list; sd_list_types_def types = it_ptr->types;
sd_next_list (it_ptr->insn, if (types != SD_LIST_NONE)
&it_ptr->types, &list, &it_ptr->resolved_p); /* Switch to next list. */
{
deps_list_t list;
it_ptr->linkp = &DEPS_LIST_FIRST (list); sd_next_list (it_ptr->insn,
&it_ptr->types, &list, &it_ptr->resolved_p);
if (list) it_ptr->linkp = &DEPS_LIST_FIRST (list);
return sd_iterator_cond (it_ptr, dep_ptr);
} if (list)
continue;
}
*dep_ptr = NULL; *dep_ptr = NULL;
return false; return false;
} }
}
} }
/* Advance iterator. */ /* Advance iterator. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment