Scheduler.xcc
Benoit Dupont de Dinechin (Benoit.Dupont-de-Dinechin@st.com).
Copyright 2002 - 2007 STMicroelectronics. Copyright 1995 - 1998 Commissariat a l'Energie Atomique.
This program is free software; you can redistribute it and/or modify it under the terms of either (at your option): the GNU General Public License (GPL) version 2; the GNU Lesser General Public License (LGPL) version 2.1; any later version of these licences as published by the Free Software Foundation.
Scheduler— Base scheduler class for a BlockTrace.
struct Scheduler_; //@args Memory memory, BlockTrace blockTrace
Scheduler_issueItems— For use by Scheduler_FOREACH_IssueItem.
IDList Scheduler_issueItems(Scheduler this);
Scheduler_FOREACH_IssueItem— Iterate over this Scheduler issueItems.
#define Scheduler_FOREACH_IssueItem(this, issueItem) { \ IDList Scheduler_ISSUEITEMS = Scheduler_issueItems(this); \ IDList_FOREACH(Scheduler_ISSUEITEMS, IssueItem_, issueItem) #define Scheduler_ENDEACH_IssueItem \ IDList_ENDEACH \ }
Scheduler_linkArcs— For use by Scheduler_LINKARCS_FOREACH_DDGraphArc.
DDGraphArc ** Scheduler_linkArcs(Scheduler this);
Scheduler_LINKARCS_FOREACH_DDGraphArc— Iterate over this Scheduler LINKARCS.
#define Scheduler_LINKARCS_FOREACH_DDGraphArc(this, regFile, arc) { \ DDGraphArc *Scheduler_LINKARCS = Scheduler_linkArcs(this)[regFile]; \ int32_t Scheduler_ARCINDEX = 0; \ for (; Scheduler_LINKARCS[Scheduler_ARCINDEX] != NULL; Scheduler_ARCINDEX++) { \ DDGraphArc arc = Scheduler_LINKARCS[Scheduler_ARCINDEX]; #define Scheduler_LINKARCS_ENDEACH_DDGraphArc \ } \ }
Scheduler_schedule— Main processing function.
bool Scheduler_schedule(Scheduler this, RegionFlow regionFlow);
Scheduler_SetSchedule— Set a Schedule function for scheduling
.
void Scheduler_SetSchedule(int scheduling, int (*schedule)(struct Scheduler_ *, int, int, int));