This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH][PR rtl-optimization/70024] Fix argument to CROSSING_JUMP_P
- From: Jeff Law <law at redhat dot com>
- To: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 16 Mar 2016 11:02:37 -0600
- Subject: [PATCH][PR rtl-optimization/70024] Fix argument to CROSSING_JUMP_P
- Authentication-results: sourceware.org; auth=none
As noted in the BZ, we were passing a SEQUENCE to CROSSING_JUMP_P, which
triggers an RTL checking failure. It's pretty obvious that we should
have been passing in "delay_jump_insn" and doing so, of course, fixes
the failure.
I haven't been able to put together a sparc64 system for testing under
qemu, but I'm highly confident we've got the right fix.
I've committed this to the trunk. I'm removing the gcc-6 regression
marker, but adding one for gcc-5 as I believe gcc-5 suffers from the
same problem -- even if this testcase doesn't trigger.
Jeff
commit 295d529101bb79b4f876e119d8e3e8dbd43963d2
Author: law <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed Mar 16 16:58:12 2016 +0000
PR rtl-optimization/70024
* reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234262 138bc75d-0d04-0410-961f-82ee72b054a4
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b673443..ef16b27 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2016-03-11 Jeff Law <law@redhat.com>
+
+ PR rtl-optimization/70024
+ * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
+
2016-03-16 Richard Henderson <rth@redhat.com>
PR middle-end/70199
diff --git a/gcc/reorg.c b/gcc/reorg.c
index a02141f..7b28821 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -3307,7 +3307,7 @@ relax_delay_slots (rtx_insn *first)
reorg_redirect_jump (delay_jump_insn, trial);
target_label = trial;
if (crossing)
- CROSSING_JUMP_P (insn) = 1;
+ CROSSING_JUMP_P (delay_jump_insn) = 1;
}
/* If the first insn at TARGET_LABEL is redundant with a previous