diff options
author | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-06 22:58:54 +0000 |
---|---|---|
committer | amylaar <amylaar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-11-06 22:58:54 +0000 |
commit | 5a9ecd4a8622a9d328600ce1ec97a1ebc5d765e7 (patch) | |
tree | 292c99c70f3521110cea26b4cb276bbfa0bbdc77 /gcc/postreload.c | |
parent | c11c11bf8add34daae97c568a50308b1c08254fd (diff) | |
download | gcc-5a9ecd4a8622a9d328600ce1ec97a1ebc5d765e7.tar.gz |
* regset.h (fixed_reg_set_regset): Declare.
* dse.c: Include regset.h .
(struct insn_info): Add member fixed_regs_live.
(note_add_store_info): New typedef.
(note_add_store): New function.
(emit_inc_dec_insn_before): Expect arg to be of type insn_info_t .
Use gen_add3_insn / gen_move_insn.
Check new insn for unwanted clobbers before emitting it.
(check_for_inc_dec): Rename to...
(check_for_inc_dec_1:) ... this. Return bool. Take insn_info
parameter. Changed all callers in file.
(check_for_inc_dec, copy_fixed_regs): New functions.
(scan_insn): Set fixed_regs_live field of insn_info.
* rtl.h (check_for_inc_dec): Update prototype.
* postreload.c (reload_cse_simplify): Take new signature of
check_ind_dec into account.
* reginfo.c (fixed_reg_set_regset): New variable.
(init_reg_sets_1): Initialize it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181046 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/postreload.c')
-rw-r--r-- | gcc/postreload.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/postreload.c b/gcc/postreload.c index 8994366d922..886d024926c 100644 --- a/gcc/postreload.c +++ b/gcc/postreload.c @@ -112,8 +112,8 @@ reload_cse_simplify (rtx insn, rtx testreg) if (REG_P (value) && ! REG_FUNCTION_VALUE_P (value)) value = 0; - check_for_inc_dec (insn); - delete_insn_and_edges (insn); + if (check_for_inc_dec (insn)) + delete_insn_and_edges (insn); return; } @@ -164,8 +164,8 @@ reload_cse_simplify (rtx insn, rtx testreg) if (i < 0) { - check_for_inc_dec (insn); - delete_insn_and_edges (insn); + if (check_for_inc_dec (insn)) + delete_insn_and_edges (insn); /* We're done with this insn. */ return; } |