Commit 0f31a750 by Segher Boessenkool Committed by Segher Boessenkool

combine: Don't make an intermediate reg for assigning to sfp (PR87871)

The code with an intermediate register is perfectly fine, but LRA
apparently cannot handle the resulting code, or perhaps something else
is wrong.  In either case, making an extra temporary will not likely
help here, so let's just skip it.


	PR rtl-optimization/87871
	* combine.c (make_more_copies): Skip if dest is frame_pointer_rtx.

From-SVN: r265821
parent 7bbdffa2
2018-11-05 Segher Boessenkool <segher@kernel.crashing.org>
PR rtl-optimization/87871
* combine.c (make_more_copies): Skip if dest is frame_pointer_rtx.
2018-11-05 Paul Koning <ni1d@arrl.net> 2018-11-05 Paul Koning <ni1d@arrl.net>
* doc/sourcebuild.texi (target attributes): Document new "inf" * doc/sourcebuild.texi (target attributes): Document new "inf"
...@@ -14959,6 +14959,9 @@ make_more_copies (void) ...@@ -14959,6 +14959,9 @@ make_more_copies (void)
rtx dest = SET_DEST (set); rtx dest = SET_DEST (set);
if (dest == pc_rtx) if (dest == pc_rtx)
continue; continue;
/* See PR87871. */
if (dest == frame_pointer_rtx)
continue;
rtx src = SET_SRC (set); rtx src = SET_SRC (set);
if (!(REG_P (src) && HARD_REGISTER_P (src))) if (!(REG_P (src) && HARD_REGISTER_P (src)))
continue; continue;
......
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