public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: optimization/10116: ce2: invalid merge of "join_bb" in the context of switch statements
@ 2003-03-23 20:36 rth
0 siblings, 0 replies; 4+ messages in thread
From: rth @ 2003-03-23 20:36 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, marcel, rth, rth
Synopsis: ce2: invalid merge of "join_bb" in the context of switch statements
State-Changed-From-To: open->closed
State-Changed-By: rth
State-Changed-When: Sun Mar 23 20:30:33 2003
State-Changed-Why:
http://gcc.gnu.org/ml/gcc-patches/2003-03/msg02032.html
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10116
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: optimization/10116: ce2: invalid merge of "join_bb" in the context of switch statements
@ 2003-03-22 5:02 bangerth
0 siblings, 0 replies; 4+ messages in thread
From: bangerth @ 2003-03-22 5:02 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, marcel, nobody, rth, rth
Synopsis: ce2: invalid merge of "join_bb" in the context of switch statements
Responsible-Changed-From-To: unassigned->rth
Responsible-Changed-By: bangerth
Responsible-Changed-When: Sat Mar 22 05:02:24 2003
Responsible-Changed-Why:
Richard, this might be another simple one for you -- it
contains a patch to ifcvt.c around some lines that you
last changed with this patch
revision 1.64
date: 2001/08/22 05:21:10; author: rth; state: Exp; lines: +6 -3
* ifcvt.c (find_if_block): Allow join_bb as EXIT.
(merge_if_block): Handle fallout from same.
The patch in the PR only affects 3 lines and has a
testcase that should be simple to verify. Would you mind
taking a brief look?
Thanks
Wolfgang
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=10116
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: optimization/10116: ce2: invalid merge of "join_bb" in the context of switch statements
@ 2003-03-17 0:26 Marcel Moolenaar
0 siblings, 0 replies; 4+ messages in thread
From: Marcel Moolenaar @ 2003-03-17 0:26 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR optimization/10116; it has been noted by GNATS.
From: Marcel Moolenaar <marcel@xcllnt.net>
To: gcc-gnats@gcc.gnu.org
Cc:
Subject: Re: optimization/10116: ce2: invalid merge of "join_bb" in the context of switch statements
Date: Sun, 16 Mar 2003 16:16:42 -0800
On Sun, Mar 16, 2003 at 11:46:00PM -0000, gcc-gnats@gcc.gnu.org wrote:
>
> >Category: optimization
> >Responsible: unassigned
> >Synopsis: ce2: invalid merge of "join_bb" in the context of switch statements
> >Arrival-Date: Sun Mar 16 23:46:00 UTC 2003
This bug is being tracked with FreeBSD PR ia64/50059. The FreeBSD
sibling can be closed when a vendor import has occured and the
upgraded compiler contains a fix for this PR.
--
Marcel Moolenaar USPA: A-39004 marcel@xcllnt.net
^ permalink raw reply [flat|nested] 4+ messages in thread
* optimization/10116: ce2: invalid merge of "join_bb" in the context of switch statements
@ 2003-03-16 23:46 marcel
0 siblings, 0 replies; 4+ messages in thread
From: marcel @ 2003-03-16 23:46 UTC (permalink / raw)
To: gcc-gnats
>Number: 10116
>Category: optimization
>Synopsis: ce2: invalid merge of "join_bb" in the context of switch statements
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Mar 16 23:46:00 UTC 2003
>Closed-Date:
>Last-Modified:
>Originator: Marcel Moolenaar <marcel@xcllnt.net>
>Release: GCC 3.2.2 (FreeBSD embedded)
>Organization:
>Environment:
os: FreeBSD 5-current
platform: ia64
gcc: (GCC) 3.2.2 [FreeBSD] 20030205 (release)
>Description:
The if converter on ia64 may end up merging basic blocks that are
not actually adjacent, even though merge_blocks_nomove() is used.
The situation given by the trigger case has a jump table between
"combo_bb' and 'join_bb'. As a result of the invalid merge, the jump
table gets eliminated causing a stale reference to a label.
Note that in this case the jump table can actually be eliminated, but
that's a different story.
The fix is based on the assumption that any instruction between 'combo_bb' and 'join_bb' cannot be a label as that would invalidate the
requirement that both BBs are adjacent.
>How-To-Repeat:
Compile the trigger case with -O with an ia64 (cross) compiler and
observe that the assembly output references a temporary label that
is not defined. For example:
% cc -O -S bug.i -o bug.s
>Fix:
Diff taken from the FreeBSD vendor imported code (whitespace corrupted, no doubt):
Index: ifcvt.c
===================================================================
RCS file: /home/ncvs/src/contrib/gcc/ifcvt.c,v
retrieving revision 1.1.1.4
diff -u -r1.1.1.4 ifcvt.c
--- ifcvt.c 1 Sep 2002 20:37:43 -0000 1.1.1.4
+++ ifcvt.c 16 Mar 2003 09:55:05 -0000
@@ -1934,9 +1934,10 @@
is more than one remaining edge, it must come from elsewhere. There
may be zero incoming edges if the THEN block didn't actually join
back up (as with a call to abort). */
- else if ((join_bb->pred == NULL
- || join_bb->pred->pred_next == NULL)
- && join_bb != EXIT_BLOCK_PTR)
+ else if ((join_bb->pred == NULL || join_bb->pred->pred_next == NULL)
+ && join_bb != EXIT_BLOCK_PTR
+ && (NEXT_INSN(combo_bb->end) == join_bb->head
+ || GET_CODE(NEXT_INSN(combo_bb->end)) != CODE_LABEL))
{
/* We can merge the JOIN. */
if (life_data_ok)
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="bug.i"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="bug.i"
dm9pZCAqTlNSZXR1cm5BZGRyZXNzKGludCBvZmZzZXQpCnsKCXN3aXRjaCAob2Zmc2V0KSB7Cglj
YXNlIDA6ICByZXR1cm4gX19idWlsdGluX3JldHVybl9hZGRyZXNzKDAgKyAxKTsKCWNhc2UgMTog
IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMSArIDEpOwoJY2FzZSAyOiAgcmV0dXJu
IF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcygyICsgMSk7CgljYXNlIDM6ICByZXR1cm4gX19idWls
dGluX3JldHVybl9hZGRyZXNzKDMgKyAxKTsKCWNhc2UgNDogIHJldHVybiBfX2J1aWx0aW5fcmV0
dXJuX2FkZHJlc3MoNCArIDEpOwoJY2FzZSA1OiAgcmV0dXJuIF9fYnVpbHRpbl9yZXR1cm5fYWRk
cmVzcyg1ICsgMSk7CgljYXNlIDY6ICByZXR1cm4gX19idWlsdGluX3JldHVybl9hZGRyZXNzKDYg
KyAxKTsKCWNhc2UgNzogIHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNyArIDEpOwoJ
Y2FzZSA4OiAgcmV0dXJuIF9fYnVpbHRpbl9yZXR1cm5fYWRkcmVzcyg4ICsgMSk7CgljYXNlIDk6
ICByZXR1cm4gX19idWlsdGluX3JldHVybl9hZGRyZXNzKDkgKyAxKTsKCWNhc2UgMTA6IHJldHVy
biBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMTAgKyAxKTsKCWNhc2UgMTE6IHJldHVybiBfX2J1
aWx0aW5fcmV0dXJuX2FkZHJlc3MoMTEgKyAxKTsKCWNhc2UgMTI6IHJldHVybiBfX2J1aWx0aW5f
cmV0dXJuX2FkZHJlc3MoMTIgKyAxKTsKCWNhc2UgMTM6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJu
X2FkZHJlc3MoMTMgKyAxKTsKCWNhc2UgMTQ6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJl
c3MoMTQgKyAxKTsKCWNhc2UgMTU6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMTUg
KyAxKTsKCWNhc2UgMTY6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMTYgKyAxKTsK
CWNhc2UgMTc6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMTcgKyAxKTsKCWNhc2Ug
MTg6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMTggKyAxKTsKCWNhc2UgMTk6IHJl
dHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMTkgKyAxKTsKCWNhc2UgMjA6IHJldHVybiBf
X2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMjAgKyAxKTsKCWNhc2UgMjE6IHJldHVybiBfX2J1aWx0
aW5fcmV0dXJuX2FkZHJlc3MoMjEgKyAxKTsKCWNhc2UgMjI6IHJldHVybiBfX2J1aWx0aW5fcmV0
dXJuX2FkZHJlc3MoMjIgKyAxKTsKCWNhc2UgMjM6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2Fk
ZHJlc3MoMjMgKyAxKTsKCWNhc2UgMjQ6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3Mo
MjQgKyAxKTsKCWNhc2UgMjU6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMjUgKyAx
KTsKCWNhc2UgMjY6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMjYgKyAxKTsKCWNh
c2UgMjc6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMjcgKyAxKTsKCWNhc2UgMjg6
IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMjggKyAxKTsKCWNhc2UgMjk6IHJldHVy
biBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMjkgKyAxKTsKCWNhc2UgMzA6IHJldHVybiBfX2J1
aWx0aW5fcmV0dXJuX2FkZHJlc3MoMzAgKyAxKTsKCWNhc2UgMzE6IHJldHVybiBfX2J1aWx0aW5f
cmV0dXJuX2FkZHJlc3MoMzEgKyAxKTsKCWNhc2UgMzI6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJu
X2FkZHJlc3MoMzIgKyAxKTsKCWNhc2UgMzM6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJl
c3MoMzMgKyAxKTsKCWNhc2UgMzQ6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMzQg
KyAxKTsKCWNhc2UgMzU6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMzUgKyAxKTsK
CWNhc2UgMzY6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMzYgKyAxKTsKCWNhc2Ug
Mzc6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMzcgKyAxKTsKCWNhc2UgMzg6IHJl
dHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMzggKyAxKTsKCWNhc2UgMzk6IHJldHVybiBf
X2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoMzkgKyAxKTsKCWNhc2UgNDA6IHJldHVybiBfX2J1aWx0
aW5fcmV0dXJuX2FkZHJlc3MoNDAgKyAxKTsKCWNhc2UgNDE6IHJldHVybiBfX2J1aWx0aW5fcmV0
dXJuX2FkZHJlc3MoNDEgKyAxKTsKCWNhc2UgNDI6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2Fk
ZHJlc3MoNDIgKyAxKTsKCWNhc2UgNDM6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3Mo
NDMgKyAxKTsKCWNhc2UgNDQ6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNDQgKyAx
KTsKCWNhc2UgNDU6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNDUgKyAxKTsKCWNh
c2UgNDY6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNDYgKyAxKTsKCWNhc2UgNDc6
IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNDcgKyAxKTsKCWNhc2UgNDg6IHJldHVy
biBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNDggKyAxKTsKCWNhc2UgNDk6IHJldHVybiBfX2J1
aWx0aW5fcmV0dXJuX2FkZHJlc3MoNDkgKyAxKTsKCWNhc2UgNTA6IHJldHVybiBfX2J1aWx0aW5f
cmV0dXJuX2FkZHJlc3MoNTAgKyAxKTsKCWNhc2UgNTE6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJu
X2FkZHJlc3MoNTEgKyAxKTsKCWNhc2UgNTI6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJl
c3MoNTIgKyAxKTsKCWNhc2UgNTM6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNTMg
KyAxKTsKCWNhc2UgNTQ6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNTQgKyAxKTsK
CWNhc2UgNTU6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNTUgKyAxKTsKCWNhc2Ug
NTY6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNTYgKyAxKTsKCWNhc2UgNTc6IHJl
dHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNTcgKyAxKTsKCWNhc2UgNTg6IHJldHVybiBf
X2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNTggKyAxKTsKCWNhc2UgNTk6IHJldHVybiBfX2J1aWx0
aW5fcmV0dXJuX2FkZHJlc3MoNTkgKyAxKTsKCWNhc2UgNjA6IHJldHVybiBfX2J1aWx0aW5fcmV0
dXJuX2FkZHJlc3MoNjAgKyAxKTsKCWNhc2UgNjE6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2Fk
ZHJlc3MoNjEgKyAxKTsKCWNhc2UgNjI6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3Mo
NjIgKyAxKTsKCWNhc2UgNjM6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNjMgKyAx
KTsKCWNhc2UgNjQ6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNjQgKyAxKTsKCWNh
c2UgNjU6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNjUgKyAxKTsKCWNhc2UgNjY6
IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNjYgKyAxKTsKCWNhc2UgNjc6IHJldHVy
biBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNjcgKyAxKTsKCWNhc2UgNjg6IHJldHVybiBfX2J1
aWx0aW5fcmV0dXJuX2FkZHJlc3MoNjggKyAxKTsKCWNhc2UgNjk6IHJldHVybiBfX2J1aWx0aW5f
cmV0dXJuX2FkZHJlc3MoNjkgKyAxKTsKCWNhc2UgNzA6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJu
X2FkZHJlc3MoNzAgKyAxKTsKCWNhc2UgNzE6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJl
c3MoNzEgKyAxKTsKCWNhc2UgNzI6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNzIg
KyAxKTsKCWNhc2UgNzM6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNzMgKyAxKTsK
CWNhc2UgNzQ6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNzQgKyAxKTsKCWNhc2Ug
NzU6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNzUgKyAxKTsKCWNhc2UgNzY6IHJl
dHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNzYgKyAxKTsKCWNhc2UgNzc6IHJldHVybiBf
X2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoNzcgKyAxKTsKCWNhc2UgNzg6IHJldHVybiBfX2J1aWx0
aW5fcmV0dXJuX2FkZHJlc3MoNzggKyAxKTsKCWNhc2UgNzk6IHJldHVybiBfX2J1aWx0aW5fcmV0
dXJuX2FkZHJlc3MoNzkgKyAxKTsKCWNhc2UgODA6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2Fk
ZHJlc3MoODAgKyAxKTsKCWNhc2UgODE6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3Mo
ODEgKyAxKTsKCWNhc2UgODI6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoODIgKyAx
KTsKCWNhc2UgODM6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoODMgKyAxKTsKCWNh
c2UgODQ6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoODQgKyAxKTsKCWNhc2UgODU6
IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoODUgKyAxKTsKCWNhc2UgODY6IHJldHVy
biBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoODYgKyAxKTsKCWNhc2UgODc6IHJldHVybiBfX2J1
aWx0aW5fcmV0dXJuX2FkZHJlc3MoODcgKyAxKTsKCWNhc2UgODg6IHJldHVybiBfX2J1aWx0aW5f
cmV0dXJuX2FkZHJlc3MoODggKyAxKTsKCWNhc2UgODk6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJu
X2FkZHJlc3MoODkgKyAxKTsKCWNhc2UgOTA6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJl
c3MoOTAgKyAxKTsKCWNhc2UgOTE6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoOTEg
KyAxKTsKCWNhc2UgOTI6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoOTIgKyAxKTsK
CWNhc2UgOTM6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoOTMgKyAxKTsKCWNhc2Ug
OTQ6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoOTQgKyAxKTsKCWNhc2UgOTU6IHJl
dHVybiBfX2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoOTUgKyAxKTsKCWNhc2UgOTY6IHJldHVybiBf
X2J1aWx0aW5fcmV0dXJuX2FkZHJlc3MoOTYgKyAxKTsKCWNhc2UgOTc6IHJldHVybiBfX2J1aWx0
aW5fcmV0dXJuX2FkZHJlc3MoOTcgKyAxKTsKCWNhc2UgOTg6IHJldHVybiBfX2J1aWx0aW5fcmV0
dXJuX2FkZHJlc3MoOTggKyAxKTsKCWNhc2UgOTk6IHJldHVybiBfX2J1aWx0aW5fcmV0dXJuX2Fk
ZHJlc3MoOTkgKyAxKTsKCX0KCXJldHVybiAwOwp9Cg==
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2003-03-23 20:30 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-03-23 20:36 optimization/10116: ce2: invalid merge of "join_bb" in the context of switch statements rth
-- strict thread matches above, loose matches on Subject: below --
2003-03-22 5:02 bangerth
2003-03-17 0:26 Marcel Moolenaar
2003-03-16 23:46 marcel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).