From 749c6f584b30dbc81917b4f445f30000fadc5ce6 Mon Sep 17 00:00:00 2001 From: rth Date: Tue, 9 Jan 2001 17:45:12 +0000 Subject: * 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 --- gcc/sched-int.h | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'gcc/sched-int.h') 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 -- cgit v1.2.1