backport: re PR rtl-optimization/40710 (Linux kernel miscompiled for sh4-linux)
Backport from mainline: 2009-07-15 Eric Botcazou <ebotcazou@adacore.com> PR rtl-optimization/40710 * resource.c (mark_target_live_regs): Reset DF problem to LR. From-SVN: r149965
This commit is contained in:
parent
b145a595e1
commit
5cfa2dd468
|
@ -1,3 +1,11 @@
|
|||
2009-07-22 Kaz Kojima <kkojima@gcc.gnu.org>
|
||||
|
||||
Backport from mainline:
|
||||
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-22 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/40321
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue