Commit 509a31f8 by H.J. Lu Committed by H.J. Lu

Don't propagate hard registers in forward_propagate_subreg.

2011-07-05  H.J. Lu  <hongjiu.lu@intel.com>

	PR rtl-optimization/47449
	* fwprop.c (forward_propagate_subreg): Don't propagate hard
	register nor zero/sign extended hard register.

From-SVN: r175849
parent 39becbac
2011-07-05 H.J. Lu <hongjiu.lu@intel.com>
PR rtl-optimization/47449
* fwprop.c (forward_propagate_subreg): Don't propagate hard
register nor zero/sign extended hard register.
2011-07-05 Richard Guenther <rguenther@suse.de> 2011-07-05 Richard Guenther <rguenther@suse.de>
PR tree-optimization/49518 PR tree-optimization/49518
......
...@@ -1101,6 +1101,7 @@ forward_propagate_subreg (df_ref use, rtx def_insn, rtx def_set) ...@@ -1101,6 +1101,7 @@ forward_propagate_subreg (df_ref use, rtx def_insn, rtx def_set)
src = SET_SRC (def_set); src = SET_SRC (def_set);
if (GET_CODE (src) == SUBREG if (GET_CODE (src) == SUBREG
&& REG_P (SUBREG_REG (src)) && REG_P (SUBREG_REG (src))
&& REGNO (SUBREG_REG (src)) >= FIRST_PSEUDO_REGISTER
&& GET_MODE (SUBREG_REG (src)) == use_mode && GET_MODE (SUBREG_REG (src)) == use_mode
&& subreg_lowpart_p (src) && subreg_lowpart_p (src)
&& all_uses_available_at (def_insn, use_insn)) && all_uses_available_at (def_insn, use_insn))
...@@ -1119,6 +1120,7 @@ forward_propagate_subreg (df_ref use, rtx def_insn, rtx def_set) ...@@ -1119,6 +1120,7 @@ forward_propagate_subreg (df_ref use, rtx def_insn, rtx def_set)
if ((GET_CODE (src) == ZERO_EXTEND if ((GET_CODE (src) == ZERO_EXTEND
|| GET_CODE (src) == SIGN_EXTEND) || GET_CODE (src) == SIGN_EXTEND)
&& REG_P (XEXP (src, 0)) && REG_P (XEXP (src, 0))
&& REGNO (XEXP (src, 0)) >= FIRST_PSEUDO_REGISTER
&& GET_MODE (XEXP (src, 0)) == use_mode && GET_MODE (XEXP (src, 0)) == use_mode
&& !free_load_extend (src, def_insn) && !free_load_extend (src, def_insn)
&& all_uses_available_at (def_insn, use_insn)) && all_uses_available_at (def_insn, use_insn))
......
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