aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSegher Boessenkool <segher@kernel.crashing.org>2018-10-25 00:34:40 +0200
committerSegher Boessenkool <segher@gcc.gnu.org>2018-10-25 00:34:40 +0200
commitb8ac95761a5c0a902fa2547e9345febf26713bf5 (patch)
treea48e19391c14d046d4639b73ddd54954d831c418
parentf8719680bfd5adf14aa91ce3017d59f7eac7f64e (diff)
downloadgcc-b8ac95761a5c0a902fa2547e9345febf26713bf5.zip
gcc-b8ac95761a5c0a902fa2547e9345febf26713bf5.tar.gz
gcc-b8ac95761a5c0a902fa2547e9345febf26713bf5.tar.bz2
combine: Don't do make_more_copies for dest PC (PR87720)
Jumps are written in RTL as moves to PC. But the latter has no mode, so we shouldn't try to use it. Since the optimization this routine does does not really help for jumps at all, let's just skip it. PR rtl-optimization/87720 * combine.c (make_more_copies): Skip if the dest is pc_rtx. From-SVN: r265474
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/combine.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fdfca8b..da93f6f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2018-10-24 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR rtl-optimization/87720
+ * combine.c (make_more_copies): Skip if the dest is pc_rtx.
+
2018-10-24 Alexandre Oliva <aoliva@redhat.com>
* gimple-ssa-isolate-paths.c
diff --git a/gcc/combine.c b/gcc/combine.c
index 8ec6809..2b93328 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -14958,6 +14958,8 @@ make_more_copies (void)
continue;
rtx src = SET_SRC (set);
rtx dest = SET_DEST (set);
+ if (dest == pc_rtx)
+ continue;
if (GET_CODE (src) == SUBREG)
src = SUBREG_REG (src);
if (!(REG_P (src) && HARD_REGISTER_P (src)))