aboutsummaryrefslogtreecommitdiff
path: root/gcc/cse.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@gcc.gnu.org>2001-07-16 10:54:34 -0700
committerRichard Henderson <rth@gcc.gnu.org>2001-07-16 10:54:34 -0700
commit4e2db58460e396ff0a66e3c87f94665c2a7c1ffc (patch)
tree91f60d01900241bcf2cec0a70c51d3cdca1a9403 /gcc/cse.c
parentfb124b992c3235992f5fc7f781266d5708d3a215 (diff)
downloadgcc-4e2db58460e396ff0a66e3c87f94665c2a7c1ffc.zip
gcc-4e2db58460e396ff0a66e3c87f94665c2a7c1ffc.tar.gz
gcc-4e2db58460e396ff0a66e3c87f94665c2a7c1ffc.tar.bz2
hard-reg-set.h (regs_invalidated_by_call): Declare.
* hard-reg-set.h (regs_invalidated_by_call): Declare. * regclass.c (regs_invalidated_by_call): Move from cse.c. (init_reg_sets_1): Move initialization from cse_main. * cse.c (regs_invalidated_by_call): Move to regclass.c. (cse_main): Move its initialization also. * df.c (df_insn_refs_record): Use regs_invalidated_by_call. * flow.c (propagate_one_insn): Likewise. * gcse.c (compute_hash_table): Likewise. (compute_kill_rd, compute_store_table): Likewise. * sched-deps.c (sched_analyze_1): Likewise. From-SVN: r44053
Diffstat (limited to 'gcc/cse.c')
-rw-r--r--gcc/cse.c36
1 files changed, 0 insertions, 36 deletions
diff --git a/gcc/cse.c b/gcc/cse.c
index bc86cdc..266f258 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -346,11 +346,6 @@ static struct cse_reg_info *cached_cse_reg_info;
static HARD_REG_SET hard_regs_in_table;
-/* A HARD_REG_SET containing all the hard registers that are invalidated
- by a CALL_INSN. */
-
-static HARD_REG_SET regs_invalidated_by_call;
-
/* CUID of insn that starts the basic block currently being cse-processed. */
static int cse_basic_block_start;
@@ -7072,37 +7067,6 @@ cse_main (f, nregs, after_loop, file)
INSN_CUID (insn) = i;
}
- /* Initialize which registers are clobbered by calls. */
-
- CLEAR_HARD_REG_SET (regs_invalidated_by_call);
-
- for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
- if ((call_used_regs[i]
- /* Used to check !fixed_regs[i] here, but that isn't safe;
- fixed regs are still call-clobbered, and sched can get
- confused if they can "live across calls".
-
- The frame pointer is always preserved across calls. The arg
- pointer is if it is fixed. The stack pointer usually is, unless
- RETURN_POPS_ARGS, in which case an explicit CLOBBER
- will be present. If we are generating PIC code, the PIC offset
- table register is preserved across calls. */
-
- && i != STACK_POINTER_REGNUM
- && i != FRAME_POINTER_REGNUM
-#if HARD_FRAME_POINTER_REGNUM != FRAME_POINTER_REGNUM
- && i != HARD_FRAME_POINTER_REGNUM
-#endif
-#if ARG_POINTER_REGNUM != FRAME_POINTER_REGNUM
- && ! (i == ARG_POINTER_REGNUM && fixed_regs[i])
-#endif
-#if !defined (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED)
- && ! (i == PIC_OFFSET_TABLE_REGNUM && flag_pic)
-#endif
- )
- || global_regs[i])
- SET_HARD_REG_BIT (regs_invalidated_by_call, i);
-
ggc_push_context ();
/* Loop over basic blocks.