diff options
author | uweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-12-03 21:59:10 +0000 |
---|---|---|
committer | uweigand <uweigand@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-12-03 21:59:10 +0000 |
commit | 5a1b56d93e5e97f6ca81efd23c4ea6844b6ad1b9 (patch) | |
tree | f081b6847a0e9377b7ccb1828811368648fc35ee /gcc/reload.c | |
parent | 96439bf24f276c3061cac029683accb345b5540a (diff) | |
download | gcc-5a1b56d93e5e97f6ca81efd23c4ea6844b6ad1b9.tar.gz |
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/trunk@218335 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload.c')
-rw-r--r-- | gcc/reload.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index 9ef2c89887a..3f5abb84878 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -1625,6 +1625,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. */ |