diff options
author | uweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-12-17 15:07:28 +0000 |
---|---|---|
committer | uweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-12-17 15:07:28 +0000 |
commit | a47773eddadaacb9e1e0f94eaebc913199010bfe (patch) | |
tree | 95af26726b08b165a8913943597f528983f40921 | |
parent | 18c92cb6e6bfac53ea3a9afbc0407fc94f2ead1b (diff) | |
download | gcc-a47773eddadaacb9e1e0f94eaebc913199010bfe.tar.gz |
2014-12-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
Backport from mainline
2014-12-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
PR rtl-optimization/64010
* reload.c (push_reload): Before reusing a register contained
in an operand as input reload register, ensure that it is not
used in CALL_INSN_FUNCTION_USAGE.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_9-branch@218821 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/reload.c | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5d95e431fe8..56c37e06a45 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2014-12-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> + + Backport from mainline + 2014-12-03 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> + + PR rtl-optimization/64010 + * reload.c (push_reload): Before reusing a register contained + in an operand as input reload register, ensure that it is not + used in CALL_INSN_FUNCTION_USAGE. + 2014-12-15 Jakub Jelinek <jakub@redhat.com> PR sanitizer/64265 diff --git a/gcc/reload.c b/gcc/reload.c index 851daf30f29..e0405097adb 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -1622,6 +1622,7 @@ push_reload (rtx in, rtx out, rtx *inloc, rtx *outloc, end_hard_regno (rel_mode, regno), PATTERN (this_insn), inloc) + && ! find_reg_fusage (this_insn, USE, XEXP (note, 0)) /* If this is also an output reload, IN cannot be used as the reload register if it is set in this insn unless IN is also OUT. */ |