From b8ac95761a5c0a902fa2547e9345febf26713bf5 Mon Sep 17 00:00:00 2001 From: Segher Boessenkool <segher@kernel.crashing.org> Date: Thu, 25 Oct 2018 00:34:40 +0200 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/combine.c | 2 ++ 2 files changed, 7 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fdfca8ba6bc3..da93f6f88676 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 8ec6809c05c1..2b9332893922 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))) -- GitLab