Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
e4da5f6d
Commit
e4da5f6d
authored
Jun 26, 1998
by
Michael Meissner
Committed by
Michael Meissner
Jun 26, 1998
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add hooks for the machine to override the sorting of the ready list and variable issue rates
From-SVN: r20740
parent
db3d4438
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
53 additions
and
0 deletions
+53
-0
gcc/ChangeLog
+7
-0
gcc/haifa-sched.c
+14
-0
gcc/tm.texi
+32
-0
No files found.
gcc/ChangeLog
View file @
e4da5f6d
Fri Jun 26 16:03:15 1998 Michael Meissner <meissner@cygnus.com>
* haifa-sched.c (schedule_block): Add hooks for the machine
description to reorder the ready list, and update how many more
instructions can be issued this cycle.
* tm.texi (MD_SCHED_{INIT,REORDER,VARIABLE_ISSUE}): Document.
Fri Jun 26 11:54:11 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
Fri Jun 26 11:54:11 1998 David S. Miller <davem@pierdol.cobaltmicro.com>
* config/sparc/sparc.h (REGNO_OK_FOR_{INDEX,BASE,FP,CCFP}_P):
* config/sparc/sparc.h (REGNO_OK_FOR_{INDEX,BASE,FP,CCFP}_P):
...
...
gcc/haifa-sched.c
View file @
e4da5f6d
...
@@ -6725,11 +6725,18 @@ schedule_block (bb, rgn_n_insns)
...
@@ -6725,11 +6725,18 @@ schedule_block (bb, rgn_n_insns)
}
}
}
}
#ifdef MD_SCHED_INIT
MD_SCHED_INIT
(
dump
,
sched_verbose
);
#endif
/* no insns scheduled in this block yet */
/* no insns scheduled in this block yet */
last_scheduled_insn
=
0
;
last_scheduled_insn
=
0
;
/* Sort the ready list */
/* Sort the ready list */
SCHED_SORT
(
ready
,
n_ready
);
SCHED_SORT
(
ready
,
n_ready
);
#ifdef MD_SCHED_REORDER
MD_SCHED_REORDER
(
dump
,
sched_verbose
,
ready
,
n_ready
);
#endif
if
(
sched_verbose
>=
2
)
if
(
sched_verbose
>=
2
)
{
{
...
@@ -6776,6 +6783,9 @@ schedule_block (bb, rgn_n_insns)
...
@@ -6776,6 +6783,9 @@ schedule_block (bb, rgn_n_insns)
/* Sort the ready list. */
/* Sort the ready list. */
SCHED_SORT
(
ready
,
n_ready
);
SCHED_SORT
(
ready
,
n_ready
);
#ifdef MD_SCHED_REORDER
MD_SCHED_REORDER
(
dump
,
sched_verbose
,
ready
,
n_ready
);
#endif
if
(
sched_verbose
)
if
(
sched_verbose
)
{
{
...
@@ -6865,7 +6875,11 @@ schedule_block (bb, rgn_n_insns)
...
@@ -6865,7 +6875,11 @@ schedule_block (bb, rgn_n_insns)
last
=
move_insn
(
insn
,
last
);
last
=
move_insn
(
insn
,
last
);
sched_n_insns
++
;
sched_n_insns
++
;
#ifdef MD_SCHED_VARIABLE_ISSUE
MD_SCHED_VARIABLE_ISSUE
(
dump
,
sched_verbose
,
insn
,
can_issue_more
);
#else
can_issue_more
--
;
can_issue_more
--
;
#endif
n_ready
=
schedule_insn
(
insn
,
ready
,
n_ready
,
clock_var
);
n_ready
=
schedule_insn
(
insn
,
ready
,
n_ready
,
clock_var
);
...
...
gcc/tm.texi
View file @
e4da5f6d
...
@@ -7417,6 +7417,38 @@ A C expression that returns how many instructions can be issued at the
...
@@ -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
same
time
if
the
machine
is
a
superscalar
machine
.
This
is
only
used
by
the
@samp{
Haifa
}
scheduler
,
and
not
the
traditional
scheduler
.
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
@findex
MAX_INTEGER_COMPUTATION_MODE
@item
MAX_INTEGER_COMPUTATION_MODE
@item
MAX_INTEGER_COMPUTATION_MODE
Define
this
to
the
largest
integer
machine
mode
which
can
be
used
for
Define
this
to
the
largest
integer
machine
mode
which
can
be
used
for
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment