diff options
author | Dorit Naishlos <dorit@il.ibm.com> | 2003-10-09 09:08:37 +0000 |
---|---|---|
committer | Dorit Nuzman <dorit@gcc.gnu.org> | 2003-10-09 09:08:37 +0000 |
commit | 569fa502d175107e774a81965253debe8d9de94b (patch) | |
tree | cf4b5b0d6fa071cfa3bd81035f628ab846f4673e /gcc/target.h | |
parent | 2df6848e22f1ea6fd8a43284a85986337de4a425 (diff) | |
download | gcc-569fa502d175107e774a81965253debe8d9de94b.zip gcc-569fa502d175107e774a81965253debe8d9de94b.tar.gz gcc-569fa502d175107e774a81965253debe8d9de94b.tar.bz2 |
haifa-sched.c (ok_for_early_schedule): New function.
* haifa-sched.c (ok_for_early_schedule): New function.
(early_queue_to_ready): New function.
(schedule_block): Allow early removal of insns from Q.
(schedule_insn): Update INSN_TICK in case of premature
issue.
* common.opt (sched_stalled_insns): New flag.
(sched_stalled_insns_dep): New flag.
* flags.h: Same above flags.
* opts.c: Same as above.
* toplev.c: Same as above.
* target.h (targetm.sched.is_costly_dependence): New
hook.
* target-def.h: Same as above.
* config/rs6000/rs6000.h: (rs6000_sched_costly_dep):
Support new flag -msched-costly-dep.
(DEFAULT_SCHED_COSTLY_DEP): Define.
* config/rs6000/rs6000.c:
(rs6000_is_costly_dependence): New function.
(is_load_insn, is_store_insn): New functions.
(is_load_insn1, is_store_insn1, is_mem_ref): New
functions.
* doc/invoke.texi (-fsched-stalled-insns-dep)
(-fsched-stalled-insns, -msched-costly-dep): Document
options.
* doc/tm.texi (is_costly_dependence): Define new
scheduler target hook.
From-SVN: r72261
Diffstat (limited to 'gcc/target.h')
-rw-r--r-- | gcc/target.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/target.h b/gcc/target.h index 15d7233..8d77dfd 100644 --- a/gcc/target.h +++ b/gcc/target.h @@ -251,6 +251,18 @@ struct gcc_target scheduling. */ void (* init_dfa_bubbles) (void); rtx (* dfa_bubble) (int); + /* The following member value is a pointer to a function called + by the insn scheduler. It should return true if there exists a + dependence which is considered costly by the target, between + the insn passed as the first parameter, and the insn passed as + the second parameter. The third parameter is the INSN_DEPEND + link that represents the dependence between the two insns. The + fourth argument is the cost of the dependence as estimated by + the scheduler. The last argument is the distance in cycles + between the already scheduled insn (first parameter) and the + the second insn (second parameter). + */ + bool (* is_costly_dependence) PARAMS ((rtx, rtx, rtx, int, int)); } sched; /* Given two decls, merge their attributes and return the result. */ |