diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-01-09 17:45:12 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-01-09 17:45:12 +0000 |
commit | 749c6f584b30dbc81917b4f445f30000fadc5ce6 (patch) | |
tree | 1fe02ec542bf787c44dd766982d749861c7780fc /gcc/sched-int.h | |
parent | 63d882f5c31bae97ab2ee924f980899641e7a2ec (diff) | |
download | gcc-749c6f584b30dbc81917b4f445f30000fadc5ce6.tar.gz |
* sched-int.h (struct deps): Add max_reg, reg_last_in_use; merge
reg_last_uses, reg_last_sets, reg_last_clobbers into struct deps_reg.
* sched-deps.c (sched_analyze_1): Update uses of struct deps.
(sched_analyze_2, sched_analyze_insn): Likewise.
(sched_analyze, init_deps): Likewise.
(free_deps): Likewise. Iterate with EXECUTE_IF_SET_IN_REG_SET.
* sched-rgn.c (propagate_deps): Likewise. Remove max_reg argument.
(compute_block_backward_dependences): Update propagate_deps call.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38835 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sched-int.h')
-rw-r--r-- | gcc/sched-int.h | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/gcc/sched-int.h b/gcc/sched-int.h index f59f3a84fb3..fdd49eadca7 100644 --- a/gcc/sched-int.h +++ b/gcc/sched-int.h @@ -78,13 +78,24 @@ struct deps to ensure that they won't cross a call after scheduling is done. */ rtx sched_before_next_call; + /* The maximum register number for the following arrays. Before reload + this is max_reg_num; after reload it is FIRST_PSEUDO_REGISTER. */ + int max_reg; + /* Element N is the next insn that sets (hard or pseudo) register N within the current basic block; or zero, if there is no such insn. Needed for new registers which may be introduced by splitting insns. */ - rtx *reg_last_uses; - rtx *reg_last_sets; - rtx *reg_last_clobbers; + struct deps_reg + { + rtx uses; + rtx sets; + rtx clobbers; + } *reg_last; + + /* Element N is set for each register that has any non-zero element + in reg_last[N].{uses,sets,clobbers}. */ + regset_head reg_last_in_use; }; /* This structure holds some state of the current scheduling pass, and |