diff options
author | Ulrich Weigand <ulrich.weigand@linaro.org> | 2012-04-10 13:50:43 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@gcc.gnu.org> | 2012-04-10 13:50:43 +0000 |
commit | ca18edc55f1c23fcaa06aabe07460f4bb56f937f (patch) | |
tree | 2fa3078af37112bd66556da138324a6688225dcd /gcc | |
parent | e30459d52bc7d6c280006cae64eef63612a064be (diff) | |
download | gcc-ca18edc55f1c23fcaa06aabe07460f4bb56f937f.zip gcc-ca18edc55f1c23fcaa06aabe07460f4bb56f937f.tar.gz gcc-ca18edc55f1c23fcaa06aabe07460f4bb56f937f.tar.bz2 |
fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs.
* fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs.
Co-Authored-By: Richard Sandiford <rdsandiford@googlemail.com>
From-SVN: r186278
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fwprop.c | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4b92e94..bd7a2c7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org> + Richard Sandiford <rdsandiford@googlemail.com> + + * fwprop.c (propagate_rtx): Also set PR_CAN_APPEAR for subregs. + 2012-04-10 Richard Guenther <rguenther@suse.de> PR middle-end/52888 diff --git a/gcc/fwprop.c b/gcc/fwprop.c index 4fab5b0..c353037 100644 --- a/gcc/fwprop.c +++ b/gcc/fwprop.c @@ -664,7 +664,12 @@ propagate_rtx (rtx x, enum machine_mode mode, rtx old_rtx, rtx new_rtx, return NULL_RTX; flags = 0; - if (REG_P (new_rtx) || CONSTANT_P (new_rtx)) + if (REG_P (new_rtx) + || CONSTANT_P (new_rtx) + || (GET_CODE (new_rtx) == SUBREG + && REG_P (SUBREG_REG (new_rtx)) + && (GET_MODE_SIZE (mode) + <= GET_MODE_SIZE (GET_MODE (SUBREG_REG (new_rtx)))))) flags |= PR_CAN_APPEAR; if (!for_each_rtx (&new_rtx, varying_mem_p, NULL)) flags |= PR_HANDLE_MEM; |