* Problem with recent fixes in loop_iterations ?
@ 2001-11-18 20:37 Olivier Hainque
2001-11-19 9:05 ` Richard Henderson
2001-11-27 9:26 ` Olivier Hainque
0 siblings, 2 replies; 8+ messages in thread
From: Olivier Hainque @ 2001-11-18 20:37 UTC (permalink / raw)
To: Franz.Sirl-kernel; +Cc: gcc
Hello,
Hoping you would be able to help with a problem we face :)
Trying to bootstrap Ada on hpux with our internal GNAT tree leads to
SEGV from within loop_iterations. Basically, we get to
/* If there are multiple conditionalized loop exit tests, they may jump
back to differing CODE_LABELs. */
if (loop->top && loop->cont)
{
rtx temp = PREV_INSN (last_loop_insn);
do
{
if (GET_CODE (temp) == JUMP_INSN
/* Previous unrolling may have generated new insns not covered
by the uid_luid array. */
&& INSN_UID (JUMP_LABEL (temp)) < max_uid_for_loop
with a temp looking like the following :
(jump_insn 5407 5406 5408 (addr_vec:DI[
(label_ref:SI 5389)
...
GET_CODE (temp) is indeed JUMP_INSN, but the associated JUMP_LABEL is NULL
and INSN_UID dereferences it.
Is having this kind of insn here something expected never to happen ... or
should the test be refined, or ... ?
Thank you very much in advance for your help,
Kind Regards,
Olivier Hainque
--
hainque@act-europe.fr
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Problem with recent fixes in loop_iterations ?
2001-11-18 20:37 Problem with recent fixes in loop_iterations ? Olivier Hainque
@ 2001-11-19 9:05 ` Richard Henderson
2001-11-21 13:41 ` Olivier Hainque
2001-11-27 13:53 ` Richard Henderson
2001-11-27 9:26 ` Olivier Hainque
1 sibling, 2 replies; 8+ messages in thread
From: Richard Henderson @ 2001-11-19 9:05 UTC (permalink / raw)
To: Olivier Hainque; +Cc: Franz.Sirl-kernel, gcc
On Tue, Nov 27, 2001 at 06:26:41PM +0100, Olivier Hainque wrote:
> Is having this kind of insn here something expected never to happen ... or
> should the test be refined, or ... ?
The test must be refined a good deal to deal with a switch statement.
Probably you should notice the ADDR_VEC | ADDR_DIFF_VEC and give up.
r~
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Problem with recent fixes in loop_iterations ?
2001-11-19 9:05 ` Richard Henderson
@ 2001-11-21 13:41 ` Olivier Hainque
2001-11-21 16:13 ` Richard Henderson
2001-11-29 1:35 ` Olivier Hainque
2001-11-27 13:53 ` Richard Henderson
1 sibling, 2 replies; 8+ messages in thread
From: Olivier Hainque @ 2001-11-21 13:41 UTC (permalink / raw)
To: Richard Henderson; +Cc: Franz.Sirl-kernel, gcc
Richard Henderson <rth@redhat.com> writes:
> The test must be refined a good deal to deal with a switch statement.
> Probably you should notice the ADDR_VEC | ADDR_DIFF_VEC and give up.
This part of the compiler is not very familiar to me. By give up, you mean
returning 0, or would something like below be appropriate ? In any case,
I'll prepare a properly formed submission.
Thanks for your help,
Kind Regards,
Olivier
*** unroll.c 2001/11/27 22:09:09 1.149
--- unroll.c 2001/11/29 09:32:44
*************** loop_iterations (loop)
*** 3529,3534 ****
--- 3529,3536 ----
do
{
if (GET_CODE (temp) == JUMP_INSN
+ /* Avoid analyzing jumps not related to the loop. */
+ && JUMP_LABEL (temp) != 0
/* Previous unrolling may have generated new insns not covered
by the uid_luid array. */
&& INSN_UID (JUMP_LABEL (temp)) < max_uid_for_loop
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Problem with recent fixes in loop_iterations ?
2001-11-21 13:41 ` Olivier Hainque
@ 2001-11-21 16:13 ` Richard Henderson
2001-11-29 9:53 ` Richard Henderson
2001-11-29 1:35 ` Olivier Hainque
1 sibling, 1 reply; 8+ messages in thread
From: Richard Henderson @ 2001-11-21 16:13 UTC (permalink / raw)
To: Olivier Hainque; +Cc: Franz.Sirl-kernel, gcc
On Thu, Nov 29, 2001 at 10:35:22AM +0100, Olivier Hainque wrote:
> This part of the compiler is not very familiar to me. By give up, you mean
> returning 0...
Yes.
r~
^ permalink raw reply [flat|nested] 8+ messages in thread
* Problem with recent fixes in loop_iterations ?
2001-11-18 20:37 Problem with recent fixes in loop_iterations ? Olivier Hainque
2001-11-19 9:05 ` Richard Henderson
@ 2001-11-27 9:26 ` Olivier Hainque
1 sibling, 0 replies; 8+ messages in thread
From: Olivier Hainque @ 2001-11-27 9:26 UTC (permalink / raw)
To: Franz.Sirl-kernel; +Cc: gcc
Hello,
Hoping you would be able to help with a problem we face :)
Trying to bootstrap Ada on hpux with our internal GNAT tree leads to
SEGV from within loop_iterations. Basically, we get to
/* If there are multiple conditionalized loop exit tests, they may jump
back to differing CODE_LABELs. */
if (loop->top && loop->cont)
{
rtx temp = PREV_INSN (last_loop_insn);
do
{
if (GET_CODE (temp) == JUMP_INSN
/* Previous unrolling may have generated new insns not covered
by the uid_luid array. */
&& INSN_UID (JUMP_LABEL (temp)) < max_uid_for_loop
with a temp looking like the following :
(jump_insn 5407 5406 5408 (addr_vec:DI[
(label_ref:SI 5389)
...
GET_CODE (temp) is indeed JUMP_INSN, but the associated JUMP_LABEL is NULL
and INSN_UID dereferences it.
Is having this kind of insn here something expected never to happen ... or
should the test be refined, or ... ?
Thank you very much in advance for your help,
Kind Regards,
Olivier Hainque
--
hainque@act-europe.fr
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Problem with recent fixes in loop_iterations ?
2001-11-19 9:05 ` Richard Henderson
2001-11-21 13:41 ` Olivier Hainque
@ 2001-11-27 13:53 ` Richard Henderson
1 sibling, 0 replies; 8+ messages in thread
From: Richard Henderson @ 2001-11-27 13:53 UTC (permalink / raw)
To: Olivier Hainque; +Cc: Franz.Sirl-kernel, gcc
On Tue, Nov 27, 2001 at 06:26:41PM +0100, Olivier Hainque wrote:
> Is having this kind of insn here something expected never to happen ... or
> should the test be refined, or ... ?
The test must be refined a good deal to deal with a switch statement.
Probably you should notice the ADDR_VEC | ADDR_DIFF_VEC and give up.
r~
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Problem with recent fixes in loop_iterations ?
2001-11-21 13:41 ` Olivier Hainque
2001-11-21 16:13 ` Richard Henderson
@ 2001-11-29 1:35 ` Olivier Hainque
1 sibling, 0 replies; 8+ messages in thread
From: Olivier Hainque @ 2001-11-29 1:35 UTC (permalink / raw)
To: Richard Henderson; +Cc: Franz.Sirl-kernel, gcc
Richard Henderson <rth@redhat.com> writes:
> The test must be refined a good deal to deal with a switch statement.
> Probably you should notice the ADDR_VEC | ADDR_DIFF_VEC and give up.
This part of the compiler is not very familiar to me. By give up, you mean
returning 0, or would something like below be appropriate ? In any case,
I'll prepare a properly formed submission.
Thanks for your help,
Kind Regards,
Olivier
*** unroll.c 2001/11/27 22:09:09 1.149
--- unroll.c 2001/11/29 09:32:44
*************** loop_iterations (loop)
*** 3529,3534 ****
--- 3529,3536 ----
do
{
if (GET_CODE (temp) == JUMP_INSN
+ /* Avoid analyzing jumps not related to the loop. */
+ && JUMP_LABEL (temp) != 0
/* Previous unrolling may have generated new insns not covered
by the uid_luid array. */
&& INSN_UID (JUMP_LABEL (temp)) < max_uid_for_loop
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Problem with recent fixes in loop_iterations ?
2001-11-21 16:13 ` Richard Henderson
@ 2001-11-29 9:53 ` Richard Henderson
0 siblings, 0 replies; 8+ messages in thread
From: Richard Henderson @ 2001-11-29 9:53 UTC (permalink / raw)
To: Olivier Hainque; +Cc: Franz.Sirl-kernel, gcc
On Thu, Nov 29, 2001 at 10:35:22AM +0100, Olivier Hainque wrote:
> This part of the compiler is not very familiar to me. By give up, you mean
> returning 0...
Yes.
r~
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2001-11-29 17:53 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-11-18 20:37 Problem with recent fixes in loop_iterations ? Olivier Hainque
2001-11-19 9:05 ` Richard Henderson
2001-11-21 13:41 ` Olivier Hainque
2001-11-21 16:13 ` Richard Henderson
2001-11-29 9:53 ` Richard Henderson
2001-11-29 1:35 ` Olivier Hainque
2001-11-27 13:53 ` Richard Henderson
2001-11-27 9:26 ` Olivier Hainque
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).