re PR rtl-optimization/40710 (Linux kernel miscompiled for sh4-linux)

PR rtl-optimization/40710
	* resource.c (mark_target_live_regs): Reset DF problem to LR.

From-SVN: r149696
This commit is contained in:
Eric Botcazou 2009-07-15 21:32:46 +00:00 committed by Kaz Kojima
parent da45599cf6
commit 9d2bb9026f
2 changed files with 9 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2009-07-15 Eric Botcazou <ebotcazou@adacore.com>
PR rtl-optimization/40710
* resource.c (mark_target_live_regs): Reset DF problem to LR.
2009-07-15 Adam Nemet <anemet@caviumnetworks.com>
* config/mips/mips.md (*extenddi_truncate<mode>,

View File

@ -945,10 +945,11 @@ mark_target_live_regs (rtx insns, rtx target, struct resources *res)
/* If we found a basic block, get the live registers from it and update
them with anything set or killed between its start and the insn before
TARGET. Otherwise, we must assume everything is live. */
TARGET; this custom life analysis is really about registers so we need
to use the LR problem. Otherwise, we must assume everything is live. */
if (b != -1)
{
regset regs_live = df_get_live_in (BASIC_BLOCK (b));
regset regs_live = DF_LR_IN (BASIC_BLOCK (b));
rtx start_insn, stop_insn;
/* Compute hard regs live at start of block. */
@ -1052,7 +1053,7 @@ mark_target_live_regs (rtx insns, rtx target, struct resources *res)
{
HARD_REG_SET extra_live;
REG_SET_TO_HARD_REG_SET (extra_live, df_get_live_in (bb));
REG_SET_TO_HARD_REG_SET (extra_live, DF_LR_IN (bb));
IOR_HARD_REG_SET (current_live_regs, extra_live);
}
}