This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: new abort()
- To: David Mosberger <davidm at hpl dot hp dot com>
- Subject: Re: new abort()
- From: Bernd Schmidt <bernds at redhat dot com>
- Date: Thu, 5 Apr 2001 13:12:34 +0100 (BST)
- Cc: <gcc-patches at gcc dot gnu dot org>
On Mon, 2 Apr 2001, David Mosberger wrote:
> I tried the latest gcc3 branch and now I'm seeing an abort in
> ia64.c:4258. It turns out that rtx_needs_barrier() aborts because one
> of the PARALLEL operands has an unexpected code. When I do
> debug_rtx(pat) at the point of the abort, I get:
>
> $ p debug_rtx(pat)
> (asm_operands/v (";; rsm psr.i;;") ("") 0[ ]
> [ ] ("arch/ia64/kernel/semaphore.c") 56)
> $2 = void
Fixed with this patch, bootstrapped on the mainline and installed there and
on the branch.
Bernd
Index: ChangeLog
===================================================================
RCS file: /cvs/gcc/egcs/gcc/ChangeLog,v
retrieving revision 1.9718
diff -u -p -r1.9718 ChangeLog
--- ChangeLog 2001/04/05 11:55:17 1.9718
+++ ChangeLog 2001/04/05 12:00:57
@@ -1,5 +1,8 @@
2001-04-05 Bernd Schmidt <bernds@redhat.com>
+ * config/ia64/ia64.c (rtx_needs_barrier): A PARALLEL can contain
+ ASM_OPERAND.
+
* sched-deps.c (sched_analyze_insn): Revert more of the March 27
change.
Index: config/ia64/ia64.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/ia64/ia64.c,v
retrieving revision 1.86
diff -u -p -r1.86 ia64.c
--- ia64.c 2001/03/28 14:25:37 1.86
+++ ia64.c 2001/04/05 12:00:59
@@ -4234,7 +4234,9 @@ rtx_needs_barrier (x, flags, pred)
update_set_flags (pat, &new_flags, &pred, &cond);
need_barrier |= set_src_needs_barrier (pat, new_flags, pred, cond);
}
- else if (GET_CODE (pat) == USE || GET_CODE (pat) == CALL)
+ else if (GET_CODE (pat) == USE
+ || GET_CODE (pat) == CALL
+ || GET_CODE (pat) == ASM_OPERANDS)
need_barrier |= rtx_needs_barrier (pat, flags, pred);
else if (GET_CODE (pat) != CLOBBER && GET_CODE (pat) != RETURN)
abort ();