diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-16 17:54:34 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-16 17:54:34 +0000 |
commit | 546edcaaf9c30b39a7ac0240e86f2fcfd01e9d65 (patch) | |
tree | 91f60d01900241bcf2cec0a70c51d3cdca1a9403 /gcc/df.c | |
parent | 5d2e3b0feb8affd606954a3ebe98f6cbe4a24b90 (diff) | |
download | gcc-546edcaaf9c30b39a7ac0240e86f2fcfd01e9d65.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@44053 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/df.c')
-rw-r--r-- | gcc/df.c | 9 |
1 files changed, 2 insertions, 7 deletions
@@ -1268,14 +1268,9 @@ df_insn_refs_record (df, bb, insn) if (df->flags & DF_HARD_REGS) { - /* Each call clobbers all call-clobbered regs that are not - global or fixed and have not been explicitly defined - in the call pattern. */ + /* Kill all registers invalidated by a call. */ for (i = 0; i < FIRST_PSEUDO_REGISTER; i++) - if (call_used_regs[i] - && ! global_regs[i] - && ! fixed_regs[i] - && ! df_insn_regno_def_p (df, bb, insn, i)) + if (TEST_HARD_REG_BIT (regs_invalidated_by_call, i)) { rtx reg_clob = df_reg_clobber_gen (i); df_defs_record (df, reg_clob, bb, insn); |