diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-01-27 04:46:53 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-01-27 04:46:53 +0000 |
commit | 5deaeb50d39ff065b90fc911540584c2da3835e2 (patch) | |
tree | 0550590bfcb89e31ecc9e480084d2d4bceb518e9 /gcc/sched-int.h | |
parent | e1ff7102031f1660a3c4fb71136eb8f7aa7380a5 (diff) | |
download | gcc-5deaeb50d39ff065b90fc911540584c2da3835e2.tar.gz |
* sched-deps.c (reg_pending_uses_head): New.
(reg_pending_barrier): Rename from reg_pending_sets_all.
(find_insn_list): Don't mark inline.
(find_insn_mem_list): Remove.
(add_dependence_list, add_dependence_list_and_free): New.
(flush_pending_lists): Replace only_write param with separate
for_read and for_write parameters. Update all callers. Use
add_dependence_list_and_free.
(sched_analyze_1): Do not add reg dependencies here; just set
the pending bits. Use add_dependence_list.
(sched_analyze_2): Likewise.
(sched_analyze_insn): Replace schedule_barrier_found with
reg_pending_barrier. Add all dependencies for pending reg
uses, sets, and clobbers.
(sched_analyze): Don't add reg dependencies for calls, just
set pending bits. Use regs_invalidated_by_call. Treat
sched_before_next_call as a normal list, not a fake insn.
(init_deps): No funny init for sched_before_next_call.
(free_deps): Free pending mems lists. Don't zero reg_last.
(init_deps_global): Init reg_pending_uses.
(finish_deps_global): Free it.
* sched-int.h (deps): Make in_post_call_group_p boolean. Update docs.
(find_insn_mem_list): Remove.
* sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
(propagate_deps): Use them. Zero temp mem lists.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49262 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sched-int.h')
-rw-r--r-- | gcc/sched-int.h | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/gcc/sched-int.h b/gcc/sched-int.h index 2836aef11e4..851d058c74d 100644 --- a/gcc/sched-int.h +++ b/gcc/sched-int.h @@ -68,19 +68,20 @@ struct deps too large. */ rtx last_pending_memory_flush; - /* The last function call we have seen. All hard regs, and, of course, - the last function call, must depend on this. */ + /* A list of the last function calls we have seen. We use a list to + represent last function calls from multiple predecessor blocks. + Used to prevent register lifetimes from expanding unnecessarily. */ rtx last_function_call; + /* A list of insns which use a pseudo register that does not already + cross a call. We create dependencies between each of those insn + and the next call insn, to ensure that they won't cross a call after + scheduling is done. */ + rtx sched_before_next_call; + /* Used to keep post-call psuedo/hard reg movements together with the call. */ - int in_post_call_group_p; - - /* The LOG_LINKS field of this is a list of insns which use a pseudo - register that does not already cross a call. We create - dependencies between each of those insn and the next call insn, - to ensure that they won't cross a call after scheduling is done. */ - rtx sched_before_next_call; + bool in_post_call_group_p; /* The maximum register number for the following arrays. Before reload this is max_reg_num; after reload it is FIRST_PSEUDO_REGISTER. */ @@ -274,7 +275,6 @@ extern void free_deps PARAMS ((struct deps *)); extern void init_deps_global PARAMS ((void)); extern void finish_deps_global PARAMS ((void)); extern void compute_forward_dependences PARAMS ((rtx, rtx)); -extern int find_insn_mem_list PARAMS ((rtx, rtx, rtx, rtx)); extern rtx find_insn_list PARAMS ((rtx, rtx)); extern void init_dependency_caches PARAMS ((int)); extern void free_dependency_caches PARAMS ((void)); |