summaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-24 17:28:33 +0000
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-24 17:28:33 +0000
commitf77a5bb0ae6038b9f6d1b7dcd6541f8eece3ea89 (patch)
tree3aa01967e3cab5b61a2460c360bbe2508accd84f /gcc/flow.c
parent3e7f6cce419f02371585642d38a34cff8494eaff (diff)
downloadgcc-f77a5bb0ae6038b9f6d1b7dcd6541f8eece3ea89.tar.gz
2003-02-24 Sanjiv Kumar Gupta <sanjivg@noida.hcltech.com>
* target-def.h (TARGET_SCHED_INIT_GLOBAL, TARGET_SCHED_FINISH_GLOBAL): New macros. * target.h (md_init_global, md_finish_global): Function declarations corresponding to new target macros. * haifa-sched.c (sched_init, sched_finish): Allow target to call the new schedular hooks. * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in call to update_life_info. * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable flag_schedule_insns for SH4. * config/sh/sh.c (sh_md_init_global, sh_md_finish_global, find_set_regmode_weight, find_insn_regmode_weight, find_regmode_weight), sh_md_init, sh_dfa_new_cycle, sh_variable_issue, high_pressure, ready_reorder, rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New functions used to throttle the insn movement in first scheduling pass for SH. * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and TARGET_SCHED_FINISH_GLOBAL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78374 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 56a0bfa1db5..736e5e61bcb 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -4260,7 +4260,10 @@ void
recompute_reg_usage (rtx f ATTRIBUTE_UNUSED, int loop_step ATTRIBUTE_UNUSED)
{
allocate_reg_life_data ();
- update_life_info (NULL, UPDATE_LIFE_LOCAL, PROP_REG_INFO);
+ /* distribute_notes in combiner fails to convert some of the REG_UNUSED notes
+ to REG_DEAD notes. This causes CHECK_DEAD_NOTES in sched1 to abort. To
+ solve this update the DEATH_NOTES here. */
+ update_life_info (NULL, UPDATE_LIFE_LOCAL, PROP_REG_INFO | PROP_DEATH_NOTES);
}
/* Optionally removes all the REG_DEAD and REG_UNUSED notes from a set of