diff options
author | dorit <dorit@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-10-09 09:08:37 +0000 |
---|---|---|
committer | dorit <dorit@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-10-09 09:08:37 +0000 |
commit | 52c4b43f6b1a276c2c433f9aae10bf0568173f69 (patch) | |
tree | cf4b5b0d6fa071cfa3bd81035f628ab846f4673e /gcc/flags.h | |
parent | d1a8f235fa6917dc007bd5136302f8d7a8c5614c (diff) | |
download | ppe42-gcc-52c4b43f6b1a276c2c433f9aae10bf0568173f69.tar.gz ppe42-gcc-52c4b43f6b1a276c2c433f9aae10bf0568173f69.zip |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72261 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/flags.h')
-rw-r--r-- | gcc/flags.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/gcc/flags.h b/gcc/flags.h index 4d6ea074174..f345b497197 100644 --- a/gcc/flags.h +++ b/gcc/flags.h @@ -439,6 +439,20 @@ extern int flag_schedule_speculative; extern int flag_schedule_speculative_load; extern int flag_schedule_speculative_load_dangerous; +/* The following flags have an effect during scheduling after register + allocation: + + sched_stalled_insns means that insns can be moved prematurely from the queue + of stalled insns into the ready list. + + sched_stalled_insns_dep controls how many recently scheduled cycles will + be examined for a dependency on a stalled insn that is candidate for + premature removal from the queue of stalled insns into the ready list (has + an effect only if the flag 'sched_stalled_insns' is set). */ + +extern int flag_sched_stalled_insns; +extern int flag_sched_stalled_insns_dep; + /* flag_branch_on_count_reg means try to replace add-1,compare,branch tupple by a cheaper branch, on a count register. */ extern int flag_branch_on_count_reg; |