mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-24 03:14:08 +08:00
016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR rtl-optimization/71779 * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER, if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED or if it was truncated. From-SVN: r239123
This commit is contained in:
parent
086ad22e0e
commit
8d8e740c1c
@ -1,5 +1,10 @@
|
||||
2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
|
||||
|
||||
PR rtl-optimization/71779
|
||||
* emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
|
||||
if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
|
||||
or if it was truncated.
|
||||
|
||||
PR rtl-optimization/70903
|
||||
* cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
|
||||
|
||||
|
@ -1156,7 +1156,11 @@ set_reg_attrs_from_value (rtx reg, rtx x)
|
||||
{
|
||||
#if defined(POINTERS_EXTEND_UNSIGNED)
|
||||
if (((GET_CODE (x) == SIGN_EXTEND && POINTERS_EXTEND_UNSIGNED)
|
||||
|| (GET_CODE (x) != SIGN_EXTEND && ! POINTERS_EXTEND_UNSIGNED))
|
||||
|| (GET_CODE (x) == ZERO_EXTEND && ! POINTERS_EXTEND_UNSIGNED)
|
||||
|| (paradoxical_subreg_p (x)
|
||||
&& ! (SUBREG_PROMOTED_VAR_P (x)
|
||||
&& SUBREG_CHECK_PROMOTED_SIGN (x,
|
||||
POINTERS_EXTEND_UNSIGNED))))
|
||||
&& !targetm.have_ptr_extend ())
|
||||
can_be_reg_pointer = false;
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user