Commit 049b866d by Sebastian Perta Committed by Sebastian Perta

rl78.c (rl78_note_reg_set): fixed dead reg check for non-QImode registers

2018-01-12  Sebastian Perta  <sebastian.perta@renesas.com>
	
	* config/rl78/rl78.c (rl78_note_reg_set): fixed dead reg check 
	for non-QImode registers

From-SVN: r256945
parent 6b271a2e
2018-01-22 Sebastian Perta <sebastian.perta@renesas.com>
* config/rl78/rl78.c (rl78_note_reg_set): fixed dead reg check
for non-QImode registers
2018-01-22 Richard Biener <rguenther@suse.de> 2018-01-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/83963 PR tree-optimization/83963
......
...@@ -3792,16 +3792,21 @@ static void ...@@ -3792,16 +3792,21 @@ static void
rl78_note_reg_set (char *dead, rtx d, rtx insn) rl78_note_reg_set (char *dead, rtx d, rtx insn)
{ {
int r, i; int r, i;
bool is_dead;
if (GET_CODE (d) == MEM) if (GET_CODE (d) == MEM)
rl78_note_reg_uses (dead, XEXP (d, 0), insn); rl78_note_reg_uses (dead, XEXP (d, 0), insn);
if (GET_CODE (d) != REG) if (GET_CODE (d) != REG)
return; return;
/* Do not mark the reg unused unless all QImode parts of it are dead. */
r = REGNO (d); r = REGNO (d);
if (dead [r]) is_dead = true;
add_reg_note (insn, REG_UNUSED, gen_rtx_REG (GET_MODE (d), r)); for (i = 0; i < GET_MODE_SIZE (GET_MODE (d)); i ++)
if (!dead [r + i])
is_dead = false;
if(is_dead)
add_reg_note (insn, REG_UNUSED, gen_rtx_REG (GET_MODE (d), r));
if (dump_file) if (dump_file)
fprintf (dump_file, "note set reg %d size %d\n", r, GET_MODE_SIZE (GET_MODE (d))); fprintf (dump_file, "note set reg %d size %d\n", r, GET_MODE_SIZE (GET_MODE (d)));
for (i = 0; i < GET_MODE_SIZE (GET_MODE (d)); i ++) for (i = 0; i < GET_MODE_SIZE (GET_MODE (d)); i ++)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment