summaryrefslogtreecommitdiff
path: root/gcc/tm.texi
diff options
context:
space:
mode:
authormeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>1998-06-26 13:09:01 +0000
committermeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>1998-06-26 13:09:01 +0000
commit663b953671c969001c4034b370c54c0aeae67748 (patch)
tree1b84b8ef7b7ac4d7a97eacaeef2694bb53e71b5a /gcc/tm.texi
parentb8430a2d72bde7d76df3a364dda92bb0095862ac (diff)
downloadgcc-663b953671c969001c4034b370c54c0aeae67748.tar.gz
Add hooks for the machine to override the sorting of the ready list and variable issue rates
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@20740 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tm.texi')
-rw-r--r--gcc/tm.texi32
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/tm.texi b/gcc/tm.texi
index a4fb481e8fc..6f0d2dd74df 100644
--- a/gcc/tm.texi
+++ b/gcc/tm.texi
@@ -7417,6 +7417,38 @@ A C expression that returns how many instructions can be issued at the
same time if the machine is a superscalar machine. This is only used by
the @samp{Haifa} scheduler, and not the traditional scheduler.
+@findex MD_SCHED_INIT
+@item MD_SCHED_INIT (@var{file}, @var{verbose}
+A C statement which is executed by the @samp{Haifa} scheduler at the
+beginning of each block of instructions that are to be scheduled.
+@var{file} is either a null pointer, or a stdio stream to write any
+debug output to. @var{verbose} is the verbose level provided by
+@samp{-fsched-verbose-}@var{n}.
+
+@findex MD_SCHED_REORDER
+@item MD_SCHED_REORDER (@var{file}, @var{verbose}, @var{ready}, @var{n_ready})
+A C statement which is executed by the @samp{Haifa} scheduler after it
+has scheduled the ready list to allow the machine description to reorder
+it (for example to combine two small instructions together on
+@samp{VLIW} machines). @var{file} is either a null pointer, or a stdio
+stream to write any debug output to. @var{verbose} is the verbose level
+provided by @samp{-fsched-verbose-}@var{n}. @var{ready} is a pointer to
+the ready list of instructions that are ready to be scheduled.
+@var{n_ready} is the number of elements in the ready list. The
+scheduler reads the ready list in reverse order, starting with
+@var{ready}[@var{n_ready}-1] and going to @var{ready}[0].
+
+@findex MD_SCHED_VARIABLE_ISSUE
+@item MD_SCHED_VARIABLE_ISSUE (@var{file}, @var{verbose}, @var{insn}, @var{more})
+A C statement which is executed by the @samp{Haifa} scheduler after it
+has scheduled an insn from the ready list. @var{file} is either a null
+pointer, or a stdio stream to write any debug output to. @var{verbose}
+is the verbose level provided by @samp{-fsched-verbose-}@var{n}.
+@var{insn} is the instruction that was scheduled. @var{more} is the
+number of instructions that can be issued in the current cycle. The
+@samp{MD_SCHED_VARIABLE_ISSUE} macro is responsible for updating the
+value of @var{more} (typically by @var{more}--).
+
@findex MAX_INTEGER_COMPUTATION_MODE
@item MAX_INTEGER_COMPUTATION_MODE
Define this to the largest integer machine mode which can be used for